Spring?Boot配置文件的語法規(guī)則詳解(properties和yml)
主要介紹兩種配置文件的語法和格式,properties和yml
1.配置文件的作用
對于配置文件,也有獨立的文件夾去存放,主要用來存放一些需要經(jīng)過變動的數(shù)據(jù)(變量值);后續(xù)這些變量的值需要改變的話,直接在配置文件中修改值即可,就不需要一個個變量去修改了。
通常需要存放在配置文件中的數(shù)據(jù)
(1)項目的啟動端口
(2)數(shù)據(jù)庫的連接信息(如:用戶名和密碼)
(3)第三方系統(tǒng)的調(diào)用密鑰等信息(如:驗證當(dāng)前客戶端是否正確)
(4)用于發(fā)現(xiàn)和定位問題的普通日志和異常日志等
概念聽起來都很很迷糊,我們直接開始教學(xué)
2.創(chuàng)建配置文件
這個還需要教嗎?當(dāng)然需要。
(1)創(chuàng)建文件的位置
當(dāng)項目創(chuàng)建好之后,一般都會默認(rèn)存在application.properties這個配置文件,下面的application.yml是我后面創(chuàng)建的。
(2)創(chuàng)建文件的名字
名字是很固定的,必須是:application.properties或者application.yml,這兩個都是配置文件的格式,一般我們使用其中一個即可(一般yml使用的較多)。還有一種是application.yaml,這種其實是yml的縮寫,所以我們就不會多介紹了。
(3)當(dāng)項目中properties和yml都存在,并且里面的內(nèi)容沖突時,會以properties中的為配置項,也就是其優(yōu)先級更高
3.properties語法
首先,我們先認(rèn)識一下界面
雙擊點開:
我們就會來到這個頁面,就在這個頁面就行編寫配置內(nèi)容
(1)語法格式
通過上面我們可以看到,通過=連接。
語法規(guī)則:key和value之間通過=連接,key和key之間使用.連接
=左邊的就是key,=右邊的是value,在獲取配置文件時,需要填入完整的key。
在配置文件中,使用#號進(jìn)行注釋
舉例
配置端口號:有提示可以直接使用
這個有什么用呢?我們啟動一下程序即可知道
配置數(shù)據(jù)庫相關(guān)信息:
spring.datasoure.url = jdbc:mysql://127.0.0.1:3306/testdb?characterEncoding=utf8&useSSL=false
spring.datasource.username=zhangsan
spring.datasource.password=123456
其中,key 和value我們都是可以自定義的。
上面介紹了如何配置文件內(nèi)容,接下來,就是要去代碼中獲取key對應(yīng)的值
(2)獲取配置文件
import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RequestMapping("/con") @RestController public class Controller { //獲取端口號 @Value("${server.port}") private String port; @RequestMapping("/get") public String getValue() { return "port="+port; } }
運行結(jié)果:
原理:程序運行之后,會將對應(yīng)的值存放在port中;發(fā)揮作用的是@Value注解,然后里面格式為:"${}",花括號內(nèi)就是路徑,也就是key。
也可以通過其他的注解獲取(不需要借助瀏覽器或者postman),我們在方法前面加上@PostConstruct注解,當(dāng)項目運行起來后,就會默認(rèn)執(zhí)行該方法。
代碼:
//獲取url @Value("${spring.datasoure.url}") private String url; @PostConstruct public void get() { System.out.println("================"); System.out.println("spring.datasoure.url"+url); System.out.println("================"); }
運行結(jié)果:
以上就是獲取配置文件的方法了。
(3).properties的缺點
為什么要介紹缺點,那是為了方便介紹yml,更有對比性。
缺點:存在很多的重復(fù)項
每寫一個配置項,都需要重新寫一長串前綴,就會顯得很冗余。所以,我們需要再去學(xué)習(xí)yml
4.yml語法
(1)語法格式
格式:key: value (冒號后面有一個空格,不可以省略),如果多個key,也就是每個key中間由點好分割,在yml格式下就要改成冒號+換行分割
像上面的就是大致的寫法,冒號后面的空格一定不要忘。還有一點就是:其中null使用~表示,其他的類型比如整型和字符串,使用什么類型去接受,就可以自動轉(zhuǎn)換成什么類型
(2)獲取配置文件
yml格式獲取配置文件和properties是一樣的
import jakarta.annotation.PostConstruct; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RestController; @RestController public class YmlController { @Value("${string.str1}") private String str1; @Value("${string.str2}") private String str2; @Value("${string.str3}") private String str3; @Value("${mykey}") private String value; @Value("${key.you.love}") private String love; @Value("${test}") private int num; @PostConstruct public void getValue() { System.out.println(value); System.out.println("========================"); System.out.println(str1); System.out.println(str2); System.out.println(str3); System.out.println("========================"); } }
一樣一樣的,文件的路徑也是一樣,都使用點號連接。但是yml在編寫的時候格式不同怎么獲取呢?下面教學(xué)。
只需要選中key,然后右鍵,然后復(fù)制到"${}"中即可。
(3)yml中的單雙引號的差異
打印結(jié)果:
一般雙引號里面的東西不會被被轉(zhuǎn)義,單引號里面的會被轉(zhuǎn)義,也就是\n在單引號下就只是一個串,在雙引號下是換行
(4)配置對象
上述是配置普通類型,下面介紹配置對象
獲取整個對象不能再使用@Value注解,而使用:@ConfigurationProperties
打印結(jié)果:
這就是獲取對象的方法
(5)獲取集合
獲取list
獲取set:
打印結(jié)果:
獲取map:
(6)yml優(yōu)缺點
優(yōu)點:
1.可讀性高,寫法簡單,易于理解
2.支持更多的數(shù)據(jù)類型,可以簡單表達(dá)對象
3.支持更多的編程語言
缺點:不適合寫復(fù)雜的配置文件
以上就是全部語法內(nèi)容了。
5.配置文件格式
我們只需要修改成UTF-8編碼即可,也就是支持中文注釋
(1)配置當(dāng)前文件
在seting搜索欄中輸入:File encodings,然后出現(xiàn)下面的頁面
上述只是將當(dāng)前項目修改
(2)修改后續(xù)創(chuàng)建的所有項目
進(jìn)入后繼續(xù)搜索:File encodings
以上就是本節(jié)的全部內(nèi)容了。
到此這篇關(guān)于Spring Boot配置文件的語法規(guī)則的文章就介紹到這了,更多相關(guān)Spring Boot配置文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于spring中單例Bean引用原型Bean產(chǎn)生的問題及解決
這篇文章主要介紹了關(guān)于spring中單例Bean引用原型Bean產(chǎn)生的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06如何使用try-with-resource機(jī)制關(guān)閉連接
這篇文章主要介紹了使用try-with-resource機(jī)制關(guān)閉連接的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07IDEA+Maven創(chuàng)建Spring項目的實現(xiàn)步驟
這篇文章主要介紹了IDEA+Maven創(chuàng)建Spring項目的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07SpringBoot?ApplicationContext接口深入分析
ApplicationContext是Spring應(yīng)用程序中的中央接口,由于繼承了多個組件,使得ApplicationContext擁有了許多Spring的核心功能,如獲取bean組件,注冊監(jiān)聽事件,加載資源文件等2022-11-11使用cmd根據(jù)WSDL網(wǎng)址生成java客戶端代碼的實現(xiàn)
這篇文章主要介紹了使用cmd根據(jù)WSDL網(wǎng)址生成java客戶端代碼的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03