1. 程式人生 > >SpringBoot配置:yaml介紹

SpringBoot配置:yaml介紹

xiaohua 就會 map imp ole dog per 表示 span

一、介紹yml  

1、Spring Boot使用一個全局的配置文件(配置文件的名字是固定的)

  (1)application.properties

  (2)application.yml

2、配置文件放在src/main/resources目錄或者類路徑/config下

3、yml是YAML(YAML Ain‘t Markup Lanaguage)語言文件,以數據為中心,比josn,xml更適合做配置文件 。http://http:www.yaml.org參考語法規範。

二、YAML語法:

1、基本語法:

  k:(空格)v : 表示一對鍵值對(空格必須有

  以空格的縮進來控制層級關系,只要是右對齊的一列數據,都是一個層級的 

屬性和值也是大小寫敏感的。

server:
  port: 8081
  path:/hello

2、值的寫法

  (1)普通的值(數字、字符串、布爾值)

  k: v : 字面直接來寫。

  字符串默認不用加單引號或雙引號;

  如果使用雙引號:字符串中有特殊字符的話,不能識別特殊字符,不會進行轉義。

  例如:

  name: "zhangsan \n lisi" 輸出: zhangsan 換行 lisi

  如果使用單引號,特殊字符會轉成普通字符輸出。

  輸出:zhangsan \n lisi

  (2)Map

  k: v :在下一行來寫屬性和值的關系,註意縮進

  對象還是k: v的方式

friends:
    lastName: zhangsan
    age: 20

  行內寫法:

friends: {lastName: zhangsan,age: 20}

數組(List、Set):

  用 - 值表示數組中的一個元素:

pets:
    - cat
    - dog
    - pig

行內寫法:

pets: [cat,dog,pig]

示例:

bean文件

  

package com.song.bean;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**j將配置文件中每一個屬性值映射到這個數組中, *ConfigurationProperties告訴Spring boot將本類中所有屬性和配置文件中相關的配置綁定 * prefix = "person":配置文件中那個下的所有屬性進行一一映射 *只有這個組件是容器中的組件,才能使用容器提供的功能 * Created by Administrator on 2018/6/12 0012. */ @Component @ConfigurationProperties(prefix = "person") public class Person { private String lastName; private Integer age; private Boolean boos; private Date birth; private Map<String,Object> maps; private List<Object> lists; private Dog dog; @Override public String toString() { return "Person{" + "lastName=‘" + lastName + \‘ + ", age=" + age + ", boos=" + boos + ", birth=" + birth + ", maps=" + maps + ", lists=" + lists + ", dog=" + dog + }; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Boolean getBoos() { return boos; } public void setBoos(Boolean boos) { this.boos = boos; } public Date getBirth() { return birth; } public void setBirth(Date birth) { this.birth = birth; } public Map<String, Object> getMaps() { return maps; } public void setMaps(Map<String, Object> maps) { this.maps = maps; } public List<Object> getLists() { return lists; } public void setLists(List<Object> lists) { this.lists = lists; } public Dog getDog() { return dog; } public void setDog(Dog dog) { this.dog = dog; } }

yaml文件

person:
   lastName: zhangsan
   age: 18
   boss: true
   birth: 2017/12/12
   maps: {name: 小花,age: 2}
   lists:
     - lisi
     - zhaoliu
   dog:
    name: 小花
    age: 2    

pom.xml的依賴配置

<!--導入配置文件處理器,配置文件進行綁定就會有提示-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>

最後測試打印結果為:

Person{lastName=‘zhangsan‘, age=18, boos=null, birth=Tue Dec 12 00:00:00 GMT+08:00 2017, maps={name=小花, age=2}, lists=[lisi, zhaoliu], dog=Dog{name=‘小花‘, age=2}}

  

對應的properties文件配置

person.lastName=zhangsan
person.age=28
person.maps.k1=xiahua
person.maps.k2=lisi
person.dog.name=xiaohua 
person.dog.age=2
person.lists=a,b,c

SpringBoot配置:yaml介紹