全面解析SpringBoot配置文件
1.文件類(lèi)型
1.1properties
同以前的properties用法。
1.2yaml
簡(jiǎn)介
YAML 是 “YAML Ain't Markup Language”(YAML 不是一種標(biāo)記語(yǔ)言)的遞歸縮寫(xiě)。在開(kāi)發(fā)的這種語(yǔ)言時(shí),YAML 的意思其實(shí)是:“Yet Another Markup Language”(仍是一種標(biāo)記語(yǔ)言)。
非常適合用來(lái)做以數(shù)據(jù)為中心的配置文件。
基本語(yǔ)法
key: value
;kv之間有空格
大小寫(xiě)敏感
使用縮進(jìn)表示層級(jí)關(guān)系
縮進(jìn)不允許使用tab,只允許空格
縮進(jìn)的空格數(shù)不重要,只要相同層級(jí)的元素左對(duì)齊即可
#
表示注釋
字符串無(wú)需加引號(hào),如果要加,' '
會(huì)轉(zhuǎn)義,“ ”
不會(huì)轉(zhuǎn)義。
例:"zhangsan\n小皮皮"
,單引號(hào)不會(huì)換行,雙引號(hào)會(huì)換行。
數(shù)據(jù)類(lèi)型
字面量:?jiǎn)蝹€(gè)的、不可再分的值。date、boolean、string、number、null
k: v
對(duì)象:鍵值對(duì)的集合。map、hash、set、object
行內(nèi)寫(xiě)法: k: {k1: v1,k2: v2,k3: v3}
#或
k:
k1: v1
k2: v2
k3: v3
數(shù)組:一組按次序排列的值。array、list、queue
行內(nèi)寫(xiě)法: k: [v1,v2,v3]
#或者
k:
- v1
- v2
- v3
舉例
兩個(gè)實(shí)體類(lèi)
@Data//lombok,這里已經(jīng)幫我們封裝好get,set方法 public class Person { private String userName; private Boolean boss; private Date birth; private Integer age; private Pet pet; private String[] interests; private List<String> animal; private Map<String, Object> score; private Set<Double> salarys; private Map<String, List<Pet>> allPets; } @Data public class Pet { private String name; private Double weight; }
yaml配置:
# yaml表示以上對(duì)象 person: userName: zhangsan boss: false birth: 2019/12/12 20:12:33 age: 18 pet: name: tomcat weight: 23.4 interests: [籃球,游泳] animal: - jerry - mario score: english: first: 30 second: 40 third: 50 math: [131,140,148] chinese: {first: 128,second: 136} salarys: [3999,4999.98,5999.99] allPets: sick: - {name: tom} - {name: jerry,weight: 47} health: [{name: mario,weight: 47}]
2.配置提示
自定義的類(lèi)和配置文件綁定一般沒(méi)有提示。
可以看出如果在yaml文件里用spring內(nèi)部的配置會(huì)有提示,但是如果用我們定義的類(lèi)沒(méi)有。為了提升開(kāi)發(fā)效率,這里只需在pom.xml
添加依賴(lài)即可:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <excludes> <exclude> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> </exclude> </excludes> </configuration> </plugin> </plugins> </build>
加完依賴(lài)后的效果:
以上就是全面解析SpringBoot配置文件的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Go反射底層原理及數(shù)據(jù)結(jié)構(gòu)解析
這篇文章主要介紹了Go反射底層原理及數(shù)據(jù)結(jié)構(gòu)解析,反射的實(shí)現(xiàn)和interface的組成很相似,都是由“類(lèi)型”和“數(shù)據(jù)值”構(gòu)成,下面小編分享更多相關(guān)內(nèi)容需要的小伙伴可以參考一下2022-06-06SpringCloud Gateway加載斷言predicates與過(guò)濾器filters的源碼分析
這篇文章主要介紹了SpringCloud Gateway加載斷言predicates與過(guò)濾器filters的詳細(xì)過(guò)程,本文通過(guò)源碼給大家解析的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-05-05java LinkedList類(lèi)詳解及實(shí)例代碼
這篇文章主要介紹了java LinkedList類(lèi)詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2017-01-01Java編程實(shí)現(xiàn)多線程TCP服務(wù)器完整實(shí)例
這篇文章主要介紹了Java編程實(shí)現(xiàn)多線程TCP服務(wù)器完整實(shí)例,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01Springboot整合JPA配置多數(shù)據(jù)源流程詳解
這篇文章主要介紹了Springboot整合JPA配置多數(shù)據(jù)源,JPA可以通過(guò)實(shí)體類(lèi)生成數(shù)據(jù)庫(kù)的表,同時(shí)自帶很多增刪改查方法,大部分sql語(yǔ)句不需要我們自己寫(xiě),配置完成后直接調(diào)用方法即可,很方便2022-11-11SpringBoot配置Https入門(mén)實(shí)踐
本文主要介紹了SpringBoot配置Https入門(mén)實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-11-11IDEA打包的兩種方式及注意事項(xiàng)說(shuō)明
這篇文章主要介紹了IDEA打包的兩種方式及注意事項(xiàng)說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04使用Netty解決TCP粘包和拆包問(wèn)題過(guò)程詳解
這篇文章主要介紹了使用Netty解決TCP粘包和拆包問(wèn)題過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07