前言:在springboot 項目中通常默認的配置文件是application.properties,可是實際項目中咱們通常會使用application.yml 文件,下面就介紹一下在springboot 中讀取 yml 配置的幾種方式.java
直接就是 key: value ,如:spring
age: 18 name: mysgk
注:數組
字符串默認不用加上單引號或者雙引號; "":雙引號;不會轉義字符串裏面的特殊字符;特殊字符會做爲自己想表示的意思 name: "zhangsan \n lisi":輸出;zhangsan 換行 lisi '':單引號;會轉義特殊字符,特殊字符最終只是一個普通的字符串數據 name: ‘zhangsan \n lisi’:輸出;zhangsan \n lisi
對象仍是k: v的方式
k: v:在下一行來寫對象的屬性和值的關係;注意縮進(不支持tab,使用空格),如:springboot
person: age: 18 name: mysgk
用- 值表示數組中的一個元素,如:app
hands: - left - right
若是咱們只須要配置文件中的一兩個值,@Value 是最簡單方便的方式.ide
server: port: 8081
咱們在代碼中能夠這樣取值this
@Value("${server.port}") public String port;
注:此處的prot 所在的類須要是一個組件,若是是實體類須要加上@Componentcode
若是須要一個JavaBean 來專門映射配置的話,咱們通常會使用@ConfigurationProperties來讀取.server
student: age: 18 name: mysgk
javabean:對象
@Component @ConfigurationProperties(prefix = "student") public class Student { private String name; private Integer age; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } @Override public String toString() { return "Student{" + "name='" + name + '\'' + ", age=" + age + '}'; } }
使用@ConfigurationProperties,須要配置一個prefix (前綴) 參數, 即寫上 key 就能夠了.
這種方法好像用的比較少,基本沒用過...
test: msg: aaa
代碼:
@Autowired private Environment env @RequestMapping(value = "index2", method = RequestMethod.GET) public String index2() { System.out.println(env.getProperty("test.msg")); return "The Way 2 : "+ env.getProperty("test.msg"); } }