1. 程式人生 > >YAML 語言

YAML 語言

lists 層級關系 frame HA group 布爾 lse 介紹 name

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

參考資料:

  • Spring Boot 全集

YAML 語言