• SpringBoot-yaml文件详解(三)


    yaml简介

    YMAL:以数据为中心,比json和xml更适合做配置文件.官网说yaml是一种标记语言,但又不是一种标记语言我们大家可以好好探讨一下.

    yaml是不是一个标记语言,每个人都有自己独到的理解.

    不妨我们来看看官方文档:https://docs.spring.io/spring-boot/docs/2.1.7.RELEASE/reference/html/boot-features-external-config.html#boot-features-external-config-yaml

    推荐使用properties或者YAML文件来完成配置,但是对于较复杂的数据结构来说,YAML又远远优于properties

    yaml语法

    -使用缩进表示层级关系.

    -缩进时不允许使用tab只能使用空格.

    -缩进的空格数目不重要,只要相同层级的元素左对齐就可以.

    -大小写敏感.

    1.yaml基本语法

     k:(空格) v : 表示一堆键值对(空格必须要有)

    server:
      port: 8080

    2.值得写入

    字面量:普通的值(数字,字符串,布尔)

    k: v:直接写值

    默认不用加上双引号,或者单引号.

    双引号""" 如果使用了双引号那么字符串的特殊字符会作为本身想表达的意思,就是我如果我们输入的值中含有"/n"那么输出就会换行.

    单引号'' 如果使用了单引号那么字符串的特殊字符只是一个普通的字符串数据.

    对象,map(属性和值)(键值对)

    grilFriends:
          name: jdd
          age: 18

    在下一行写属性和值得关系,注意缩进.

    行内写法:

    grilFriends: {name: jdd,age 18}

    数组list,set

    用-表示数组中的元素,

    比如:

    pets:
        - cat
        - pig
        - dog

    行内写法:

    pets: [cat,pig,dog]

    yaml值得注入

    构建实体类(pojo)

    @Component
    @ConfigurationProperties(prefix = "person")
    public class Person {
     private String name;
     private  int age;
     private boolean happy;
     private Date birth;
     private Map<String,Object> maps;
     private List<Object> lists;
     private Cat cat;
    
    ...
    }

    提供有参,无参,get,set方法,toString方法

    注意:

    要加上ConfigurationProperties这个注解.

    这个注解的意思是:ConfigurationProperties告诉springboot将本类下的所有属性和配置文件中相关的属性进行绑定,将配置文件中配置的每一个属性的值,映射到组件中.

    prefix:配置文件中那个文件下的属性进行一一映射.

    Component注解:只有这个组件是容器中的组件 才会对ConfigurationPropertie供相应的功能.

    yaml配置文件编写

    Person:
      name: 七月的风
      age: 18
      happy: false
      birth: 1996/8/18
      maps: {k1: 爱,k2: 你}
      lists:
          - dog
          - pig
      cat:
          name: 小狗
          age: 2

    测试类

    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class DemoApplicationTests {
        @Autowired
       Person person;
    
        @Test
        public void contextLoads() {
    
            System.out.println(person);
        }
    
    }

    这是spring提供给我们的测试类.

    导入配置文件处理器以后配置文件就有提示了.

    <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-configuration-processor</artifactId>
                <optional>true</optional>
            </dependency>

    结果:

    
    
    
  • 相关阅读:
    SCSI contrller的几种类型的区别
    ScaleIO与XtremSW Cache如何集成呢?
    如何强制使用某一大小的包去ping某个IP地址?
    如何查看ETW Trace?
    图像卷积与滤波的一些知识点(转)
    tensorflow serving 编写配置文件platform_config_file的方法
    python在linux的报错集锦
    某些数组和字符串类型转换(转)
    系统安装-007 CentOS7yum源添加、删除及其yum优化(转)
    Error:Failed to resolve: android.arch.core:common:1.1.0
  • 原文地址:https://www.cnblogs.com/xiaoqiqistudy/p/11327915.html
Copyright © 2020-2023  润新知