詳解springboot讀取yml配置的幾種方式
yml 文件規(guī)則
- yml文件的好處,天然的樹狀結(jié)構(gòu),一目了然,實(shí)質(zhì)上跟properties是差不多的。
- 不支持tab縮進(jìn)
- 可以使用 "-小寫字母" 或 "_小寫字母"來 代替 "大寫字母",如 userName 與 user-name ,user_name 含義是一樣的
key: value 格式書寫
key 后面跟著冒號,再后面跟著一個空格,然后是值
幾種數(shù)據(jù)格式的表示方式
1.普通的值(數(shù)字,字符串,布爾)
2.對象、Map (屬性和值) (鍵值對)
3.數(shù)組 (List、Set)
普通的值(數(shù)字,字符串,布爾)
直接就是 key: value ,如:
age: 18 name: root
注:
字符串默認(rèn)不用加上單引號或者雙引號;
"":雙引號;不會轉(zhuǎn)義字符串里面的特殊字符;特殊字符會作為本身想表示的意思
name: "zhangsan \n lisi":輸出;zhangsan 換行 lisi
'':單引號;會轉(zhuǎn)義特殊字符,特殊字符最終只是一個普通的字符串?dāng)?shù)據(jù)
name: ‘zhangsan \n lisi':輸出;zhangsan \n lisi
對象、Map(屬性和值)(鍵值對)
對象還是k: v的方式
k: v:在下一行來寫對象的屬性和值的關(guān)系;注意縮進(jìn)(不支持tab,使用空格),如:
person: age: 18 name: root
數(shù)組(List、Set)
用- 值表示數(shù)組中的一個元素,如:
hands: - left - right
第一種讀取方式@value
如果我們只需要配置文件中的一兩個值,@Value 是最簡單方便的方式.
server: port: 9001
我們在代碼中可以這樣取值
@Value("${server.port}")
public String port;
注:此處的prot 所在的類需要是一個組件,如果是實(shí)體類需要加上@Component
第二種讀取方式@ConfigurationProperties
如果需要一個JavaBean 來專門映射配置的話,我們一般會使用@ConfigurationProperties來讀取.
student: age: 18 name: root
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 (前綴) 參數(shù), 即寫上 key 就可以了.
第三種讀取方式@Environment
這種方法好像用的比較少,基本沒用過...
test: msg: root is a good student
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
基于HTTP協(xié)議實(shí)現(xiàn)簡單RPC框架的方法詳解
RPC全名(Remote?Procedure?Call),翻譯過來就是遠(yuǎn)程過程調(diào)用,本文將為大家介紹如何基于HTTP協(xié)議實(shí)現(xiàn)簡單RPC框架,感興趣的小伙伴可以了解一下2023-06-06
基于SpringCloudGateway實(shí)現(xiàn)微服務(wù)網(wǎng)關(guān)的方式
Spring?Cloud?Gateway是Spring?官方基于Spring?5.0,Spring?Boot?2.0和Project?Reactor?等技術(shù)開發(fā)的網(wǎng)關(guān),旨在為微服務(wù)架構(gòu)提供一種簡單而有效的統(tǒng)一的API路由管理方式,對SpringCloudGateway實(shí)現(xiàn)微服務(wù)網(wǎng)關(guān)相關(guān)知識感興趣的朋友一起看看吧2021-12-12
深入Spring Boot之ClassLoader的繼承關(guān)系和影響
這篇文章主要介紹了深入Spring Boot之ClassLoader的繼承關(guān)系和影響,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-06-06
java.lang.NullPointerException出現(xiàn)的幾種原因及解決方案
這篇文章主要介紹了java.lang.NullPointerException出現(xiàn)的幾種原因及解決方案,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-05-05
Jpa中Specification的求和sum不生效原理分析
這篇文章主要為大家介紹了Jpa中Specification的求和sum不生效原理示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
Java基于裝飾者模式實(shí)現(xiàn)的圖片工具類實(shí)例【附demo源碼下載】
這篇文章主要介紹了Java基于裝飾者模式實(shí)現(xiàn)的圖片工具類,結(jié)合完整實(shí)例形式分析了裝飾者模式實(shí)現(xiàn)圖片的判斷、水印、縮放、復(fù)制等功能,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下2017-09-09
Java基本數(shù)據(jù)類型與封裝類型詳解(int和Integer區(qū)別)
這篇文章主要介紹了Java基本數(shù)據(jù)類型與封裝類型詳解(int和Integer區(qū)別) ,需要的朋友可以參考下2017-02-02

