• 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>

    结果:

    
    
    
  • 相关阅读:
    PHP5.6 和PHP7.0区别
    怎么清除火狐浏览器的cookie?
    PHP 7.0新增特性详解
    一个较好的基础的数据库连接池知识 规格严格
    Iptables 规格严格
    收藏一个Man网址 规格严格
    AIX配置SNMP V3 规格严格
    Tomcat Firewall JMX RMI 规格严格
    在来一个IPTables 规格严格
    java.lang.ClassNotFoundException: listeners.ContextListener . 规格严格
  • 原文地址:https://www.cnblogs.com/xiaoqiqistudy/p/11327915.html
Copyright © 2020-2023  润新知