• YAML 语言


    1. YAML 介绍

    • YAML:以数据为中心,比JSON,XML更适合做配置文件;
    //示例:
    server:
        port: 8081 //此处有空格
    

    2. YAML 基本语法

    • 使用缩进表示层级关系;
    • 缩进时,不允许使用Tab键,只允许使用空格;
    • 缩进的空格数目不重要,只有相同层级的元素左侧对齐即可;
    • 大小写敏感;

    3. YAML 支持的三种数据结构

    • 对象:键值对的集合;
    • 数组:一组按次序排列的值;
    • 字面量(数字,字符串,布尔):单个的,不可再分的值;
      • 字符串默认不用加上单引号或双引号;
      • 双引号,默认不会转义字符串里面的特殊字符;
      • 单引号,会转义特殊字符,特殊字符最终只是一个普通的字符串数据;
    // 编写application.yml配置文件
    server:
      port: 8081
    
    person:
        lastName: zhangsan
        age: 18
        boss: false
        birth: 2008/8/8
        maps: {k1: v1, k2: v2}
        lists:
          - zhaoliu
          - lisi
        dog:
          name: 鲁亚
          age: 12
    
    // 实体类
    public class Dog{
        private String name;
        private Integer age;
    
        // 省略 getter,setter,toString
    }
    
    /**
    * @ConfigurationProperties 将本类中的所有属性和配置文件中相关配置进行绑定
    * prefix = "person": 配置文件中哪个下面的所有属性进行一一映射;
    *
    * @Component
    * 只有这个组件是容器中的组件,才能使用容器提供的@ConfigurationProperties功能;
    */
    @Component
    @ConfigurationProperties(prefix = "person")
    public class Person{
        private String lastName;
        private Integer age;
        private Boolean boss;
        private Date birth;
    
        private Map<String, Object> maps;
        private List<Object> lists;
        private Dog dog;
    
        // 省略 getter,setter,toString
    }
    
    // pom.xml 中导入配置文件处理器
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-configuration-processor</artifactId>
        <optional>true</optional>
    </dependency>
    

    4. properties配置文件

    # application.properties
    # 配置person的值
    
    person.lastName=张三
    person.age=18
    person.birth=2018/5/3
    person.boss=false
    person.maps.k1=v1
    person.maps.k2=v2
    person.lists=a,b,c
    person.dog.name=xiaohua
    person.dog.age=11
    

    5. @PropertySource@ImportResource

    • @ConfigurationProperties:默认从全局配置文件中获取值;
    • @PropertySource:加载指定的配置文件;
    • @ImportResource:导入Spring的配置文件;
    // @PropertySource
    person.properties
    
    person.lastName=韦小宝
    person.age=18
    person.birth=2018/5/3
    person.boss=false
    person.maps.k1=v1
    person.maps.k2=v2
    person.lists=a,b,c
    person.dog.name=xiaohua
    person.dog.age=11
    
    // Person类
    @Component
    @PropertySource(value={"classpath:person.properties"})
    @ConfigurationProperties(prefix = "person")
    public class Person{
        private String lastName;
        private Integer age;
        private Boolean boss;
        private Date birth;
    
        private Map<String, Object> maps;
        private List<Object> lists;
        private Dog dog;
    
        // 省略 getter,setter,toString
    }
    

    参考资料:

  • 相关阅读:
    LOJ DFS序
    牛客练习赛31 D神器大师泰兹瑞与威穆
    Codeforces Round #487 (Div. 2) C
    Manthan, Codefest 18 (rated, Div. 1 + Div. 2) C D
    [Windows Server 2003] 还原SQL Server数据库
    [Windows Server 2008] 查看PHP详细错误信息
    [Windows Server 2008] 安装网站伪静态
    网站Gzip压缩
    [Windows Server 2008] SQL Server 2008 数据库还原方法
    [Windows Server 2008] 安装Apache+PHP+MySQL
  • 原文地址:https://www.cnblogs.com/linkworld/p/9131639.html
Copyright © 2020-2023  润新知