前言:在springboot 項目中一般默認的配置文件是application.properties,但是實(shí)際項目中我們一般會(huì )使用application.yml 文件,下面就介紹一下在springboot 中讀取 yml 配置的幾種方式.
直接就是 key: value ,如:
age: 18name: mysgk注:
字符串默認不用加上單引號或者雙引號;"":雙引號;不會(huì )轉義字符串里面的特殊字符;特殊字符會(huì )作為本身想表示的意思name: "zhangsan \n lisi":輸出;zhangsan 換行 lisi'':?jiǎn)我?;?huì )轉義特殊字符,特殊字符最終只是一個(gè)普通的字符串數據name: ‘zhangsan \n lisi’:輸出;zhangsan \n lisi對象還是k: v的方式
k: v:在下一行來(lái)寫(xiě)對象的屬性和值的關(guān)系;注意縮進(jìn)(不支持tab,使用空格),如:
person: age: 18 name: mysgk用- 值表示數組中的一個(gè)元素,如:
hands: - left - right如果我們只需要配置文件中的一兩個(gè)值,@Value 是最簡(jiǎn)單方便的方式.
server: port: 8081我們在代碼中可以這樣取值
@Value("${server.port}")public String port; 注:此處的prot 所在的類(lèi)需要是一個(gè)組件,如果是實(shí)體類(lèi)需要加上@Component
如果需要一個(gè)JavaBean 來(lái)專(zhuān)門(mén)映射配置的話(huà),我們一般會(huì )使用@ConfigurationProperties來(lái)讀取.
student: age: 18 name: mysgkjavabean:
@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,需要配置一個(gè)prefix (前綴) 參數, 即寫(xiě)上 key 就可以了.
這種方法好像用的比較少,基本沒(méi)用過(guò)...
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"); }} 
聯(lián)系客服