• Springboot 配置文件之 Yaml


    一、Springboot 配置文件简介

    Springboot 是基于配置进行管理的,由于 Springboot 底层都帮我们配置好了相关的模块,如果我们需要修改自动配置的默认行为该怎么办呢?这个时候我们就需要通过修改Springboot 的配置文件来实现了,Springboot 的默认的全局配置文件有两种,一种是 application.properties ,另外一种是 application.yml(或者application.yaml).这里,我们就简单说一下 Yaml 的简单实用

    二、Yaml 的特点及语法

    Yaml 是一种以数据为中心的配置文件,里面的配置基本都是数据,很少有类似于 xml 的开、闭标签等无关数据的配置,所以它比 Json、Xml 更适合做配置文件

    Yaml 语法格式如下

    key:(空格)value

    Yaml 是以空格的缩进来控制层级关系的,只要是左对齐的一列数据,代表的是同一层级的.其中 key 和 value 对大小写敏感.例如 server 下的 port 和 path 就是同一层级的数据

    server:
        port:8081
        path:/hello
    

      

    三、Yaml 的值的写法

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

    字符串默认是不用加上单引号或者是双引号的,如果要加上的话,单引号和双引号还是有一点区别的

    单引号:例如 name:'xiaomaomao hello' 它是不会进行转义的,最终输出的结果就是 xiaomaomao hello

    双引号:例如 name:"xiaomaomao hello" 它会进行转义,最终输出的结果就是 xiaomaomao 换行 hello

    name: xiaomaomao
    age: 21
    height: 157.00
    

    2、数组

    // 基本写法,代表数组 hobby 中有三个元素 LOL、KFC、COFFE
    hobby:
        - LOL
        - KFC
        - COFFE
    
    // 行内写法
    hobby: [LOL,KFC,COFFE]

    3、对象和 Map 集合

    // 一般写法
    name: Husky
          age: 2
          color: gray
    
    // 行内写法
    {name: Husky,age: 2,color: gray}
    

    4、list 集合

    // 一般写法
    pets:
        -
          name: Husky
          age: 2
          color: gray
        -
          name: persian
          age: 3
          color: orange
    
    // 行内写法
    pets:
       - {name: Husky,age: 2,color: gray}
       - {name: persian,age: 3,color: orange}
    

      

    四、案例

    1、配置文件 resources/config/application.yaml

    person:
      name: xiaomaomao
      age: 21
      height: 157.00
      hobby:
        - LOL
        - KFC
        - COFFE
      pets:
        -
          name: Husky
          age: 2
          color: gray
        -
          name: persian
          age: 3
          color: orange
      featureLevel:
        clever: 10
        lovely: 8
        funny: 8
    

    2、实体类 Person

    @Configuration
    // 将 person 下级的 key 与实体类中的属性进行映射绑定,并为其注入属性值
    @ConfigurationProperties(prefix = "person")
    // 加载指定位置的 properties 配置文件
    @PropertySource("classpath:config/application.yaml")
    // 该类省略了 set/get 方法
    public class Person {
        // 基本数据类型的属性
        private String name;
        private Integer age;
        private double height;
        // 数组
        private String[] hobby;
        // List 集合
        private List<Pet> pets;
        // Map 集合
        private Map<String, String> featureLevel;
    }
    

    3、实体类 Pet (省略 get/set/toString)

    public class Pet {
        private String name;
        private String age;
        private String color;
    }

    4、测试类

    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class Springboot01ApplicationTests {
        @Autowired
        private ApplicationContext ioc;
    
        @Test
        public void testProperties() {
            Person person = ioc.getBean("person", Person.class);
            System.out.println(person);
        }
    }

    5、测试结果

    Person{
    	name='xiaomaomao', 
    	age=21, 
    	height=157.0, 
    	hobby=[LOL, KFC, COFFE], 
    	pets=[
    		Pet{name='Husky', age='2', color='gray'}, 
    		Pet{name='persian', age='3', color='orange'}
    		], 
    	featureLevel={clever=10, lovely=8, funny=8}
    }

     

  • 相关阅读:
    路由器默认密码
    目前网络安全的攻击来源
    SQL注入——时间盲注
    UNIX网络编程第4章4.5listen函数4.6accept函数
    UNIX网络编程第3章套接字编程简介3.2套接字地址结构3.3值结果参数3.4字节排序函数
    Ubuntu软件系列---如何安装deb安装包
    Ubuntu软件系列---添加实时网速
    Ubuntu软件系列---网易云
    4.9 TF读入TFRecord
    4-8 使用tf.train.string_input_producer读取列表样本
  • 原文地址:https://www.cnblogs.com/xiaomaomao/p/13840978.html
Copyright © 2020-2023  润新知