一、Spring Boot使用一個全局的配置文件(配置文件的名字是固定的)java
(1)application.propertiesspring
(2)application.yml數組
二、配置文件放在src/main/resources目錄或者類路徑/config下app
三、yml是YAML(YAML Ain't Markup Lanaguage)語言文件,以數據爲中心,比josn,xml更適合作配置文件 。http://http:www.yaml.org參考語法規範。ide
2、YAML語法:spring-boot
一、基本語法:測試
k:(空格)v : 表示一對鍵值對(空格必須有)this
以空格的縮進來控制層級關係,只要是右對齊的一列數據,都是一個層級的 spa
屬性和值也是大小寫敏感的。code
server: port: 8081 path:/hello
二、值的寫法
(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