美食網(wǎng)站的設(shè)計(jì)與制作友情鏈接方面pr的選擇應(yīng)該優(yōu)先選擇的鏈接為
配置文件的介紹
配置文件當(dāng)中記錄了許多重要的配置信息,例如:
- 數(shù)據(jù)庫的連接信息(用戶的賬戶與密碼)
- 項(xiàng)目的啟動(dòng)端口
- 第三方系統(tǒng)的調(diào)用密匙
- 用于記錄問題產(chǎn)生的日志
在spring框架中一些特定的框架會(huì)自動(dòng)調(diào)用配置文件中的配置信息來運(yùn)用.
配置文件中的屬性也起到了類似全局變量的作用.?
對(duì)于一個(gè)項(xiàng)目,可以準(zhǔn)備多種配置文件方便自由調(diào)用來應(yīng)對(duì)不同的情況.
放置在resources目錄下?
配置文件的格式
Spring Boot的配置文件的格式主要有兩種:
- .properties(spring boot默認(rèn))
- .yml
properties與yml都是配置文件,類似于同一件實(shí)物來說,properties是舊版的而yml是新版的.
properties與yml的優(yōu)先級(jí)
properties與yml可以出現(xiàn)在同一個(gè)項(xiàng)目當(dāng)中,還是建議在一個(gè)項(xiàng)目下使用同一種類型的配置文件.
但properties的優(yōu)先級(jí)會(huì)更高,項(xiàng)目先加載properties中的配置,在這之后才去加載yml的.
?下面來示范一下.
①在同一個(gè)項(xiàng)目中分別放置properties與yml的配置文件
②分別在兩種配置文件中配置同一屬性的信息
yml配置的端口號(hào)為:666
properties配置的端口號(hào)為:123?
③在類中調(diào)用并打印查看結(jié)果
觀察得到,打印的端口號(hào)為123,即是properties配置文件中的信息.?
注意,雖然properties配置文件在SpringBoot的優(yōu)先級(jí)更高.但并不表示不會(huì)載入yml的信息噢,只是在同一個(gè)屬性上優(yōu)先使用properties中的信息.?
properties配置文件的說明?
properties是配置文件的早期文件類型,是spring boot的默認(rèn)配置文件類型
基本語法
在properties是以鍵值對(duì)的方式來賦值,其中key與value是以"="來連接.
server.port = 123
#使用"#"在配置文件中進(jìn)行注釋
讀取配置文件信息
在項(xiàng)目中想實(shí)現(xiàn)配置文件中內(nèi)容的讀取,可以使用@Value注解來實(shí)現(xiàn)
其中@Value注解的格式為${}
@Value("${server.port}")
缺點(diǎn)分析
當(dāng)在配置相近的內(nèi)容時(shí),會(huì)額外的產(chǎn)生冗余的信息.
yml配置文件的說明
yml是yaml的縮寫,全稱為:Yet Another Markup Language(另一種標(biāo)記語言).
對(duì)于properties來說,yml支持了更多的編程語言.還支持更多的數(shù)據(jù)類型,它可以簡(jiǎn)單表達(dá)清單(數(shù)組)、散列表,標(biāo)量等數(shù)據(jù)形態(tài)。它使?空?符號(hào)縮進(jìn)和?量依賴外觀的特?,特別適合?來表達(dá)或編輯數(shù)據(jù)結(jié)構(gòu)、各種配置?件.
基本語法?
yml的語法與JSON差不多,但yml使用":" + "(空格)"的形式組合連接key與value,其中的空格不要省略噢.
server.port: 666
對(duì)比:?
使用
①與properties對(duì)比
左邊為yml,右邊為properties.
可以觀察到y(tǒng)ml中的書寫更為簡(jiǎn)便一些.?
②配置數(shù)據(jù)類型
yml還可以配置數(shù)據(jù)類型以及null(properties不可配置數(shù)據(jù)類型噢~)
?③配置對(duì)象
寫法一:
寫法二:
配置文件中對(duì)象的讀取
?對(duì)于yml中的對(duì)象就不能使用@Value來讀取了
而是使用@ConfigurationProperties.
@ConfigurationProperties(prefix = "student1")//student1為yml中對(duì)象名稱
@Component
public class Student {private int age;private String name;private String id;//其中g(shù)etter與setter方法不能省略public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getId() {return id;}public void setId(String id) {this.id = id;}
}
讀取?
yml的基本讀取與properties的@Value注解讀取一直,特殊的對(duì)象讀取也說明,此處不再贅述.