SpringBoot中application.yml配置文件的寫(xiě)法
1、基本介紹
(1)YAML 是 JSON 的超集,簡(jiǎn)潔而強(qiáng)大,是一種專(zhuān)門(mén)用來(lái)書(shū)寫(xiě)配置文件的語(yǔ)言,可以替代 application.properties。
(2)在創(chuàng)建一個(gè) SpringBoot 項(xiàng)目時(shí),引入的 spring-boot-starter-web 依賴(lài)間接地引入了 snakeyaml 依賴(lài), snakeyaml 會(huì)實(shí)現(xiàn)對(duì) YAML 配置的解析。
(3)YAML 的使用非常簡(jiǎn)單,利用縮進(jìn)來(lái)表示層級(jí)關(guān)系,并且大小寫(xiě)敏感。
2、YAML 配置與 Properties 配置的比較
properties 寫(xiě)法
可以使用 @PropertySource 注解加載自定義的 Properties 配置文件,但無(wú)法加載自定義的 YAML 文件。YAML 支持列表的配置,而 Properties 不支持。
(2)以空格的縮進(jìn)來(lái)控制層級(jí)關(guān)系;只要時(shí)左對(duì)齊的一列數(shù)據(jù),都是同一個(gè)層級(jí)的。
(3)屬性和值都是大小敏感
2.1、基本語(yǔ)法
- (1)key: value。冒號(hào)與value之間必須有一個(gè)空格。
- (2)大小寫(xiě)敏感。
- (3)使用縮進(jìn)表示層級(jí)關(guān)系。
- (4)縮進(jìn)不允許使用tab,只能使用空格。
- (5)縮進(jìn)的空格數(shù)不重要,只要相同層級(jí)的元素左對(duì)齊即可。
- (6)# 后面跟注釋內(nèi)容
- (7)字符串無(wú)須加引號(hào)。"“會(huì)進(jìn)行轉(zhuǎn)義。比如’\n’就輸出\n,但”\n"則會(huì)輸出換行。
3、值的寫(xiě)法
1)字面量:?jiǎn)蝹€(gè)的、不可再分的值。date、boolean、string、number、null
值可以不加雙引號(hào)或單引號(hào),都默認(rèn)表示字符串加雙引號(hào):支持轉(zhuǎn)義字符
加單引號(hào):不支持轉(zhuǎn)義字符
2)對(duì)象:鍵值對(duì)的集合。map、hash、set、object
3)數(shù)組:一組按次序排列的值。array、list、queue
集合對(duì)象
整合
4、取值
方法1、@value("{}")取值
方法2、@ConfigurationProperties
這種方法可以取出yml中的數(shù)組
yml中配置數(shù)據(jù)庫(kù)連接
編寫(xiě)jdbc實(shí)體類(lèi)及getter setter 方法
注入
取數(shù)組
方法3、Environment
5、多環(huán)境配置
我們還可以通過(guò)在代碼中指定使用哪種環(huán)境的配置
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; @SpringBootApplication public class TestApplication { public static void main(String[] args) { SpringApplicationBuilder builder = new SpringApplicationBuilder(TestApplication.class); builder.application().setAdditionalProfiles("dev"); builder.run(args); } }
我們可以把多個(gè)環(huán)境的配置寫(xiě)在一個(gè)文件里,可以使用符號(hào)
spring: profiles: # 使用開(kāi)發(fā)環(huán)境的配置 active: dev --- # 開(kāi)發(fā)環(huán)境配置 server: port: 8888 spring: profiles: dev --- # 生產(chǎn)環(huán)境配置 server: port: 8888 spring: profiles: prod
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- springboot的application.yml配置port不生效的解決方案
- SpringBoot配置application.yml時(shí)遇到的錯(cuò)誤及解決
- Springboot?application.yml配置文件拆分方式
- 多個(gè)springboot項(xiàng)目如何使用一個(gè)外部共同的application.yml
- SpringBoot中application.properties、application.yaml、application.yml區(qū)別
- Spring Boot 配置文件(application.yml、application-dev.yml、application-test.yml)
- SpringBoot+log4j2.xml使用application.yml屬性值問(wèn)題
- springboot?log4j2.xml如何讀取application.yml中屬性值
- Spring Boot application.yml配置文件示例詳解
相關(guān)文章
idea?intellij快速修復(fù)if語(yǔ)句缺少大括號(hào)的問(wèn)題
這篇文章主要介紹了idea?intellij快速修復(fù)if語(yǔ)句缺少大括號(hào)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04Java?Servlet實(shí)現(xiàn)表白墻的代碼實(shí)例
最近用Servlet做了個(gè)小項(xiàng)目,分享給大家,下面這篇文章主要給大家介紹了關(guān)于Java?Servlet實(shí)現(xiàn)表白墻的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02Java多線程編程中使用Condition類(lèi)操作鎖的方法詳解
Condition是java.util.concurrent.locks包下的類(lèi),提供了對(duì)線程鎖的更精細(xì)的控制方法,下面我們就來(lái)看一下Java多線程編程中使用Condition類(lèi)操作鎖的方法詳解2016-07-07Java多線程編程實(shí)戰(zhàn)之模擬大量數(shù)據(jù)同步
這篇文章主要介紹了Java多線程編程實(shí)戰(zhàn)之模擬大量數(shù)據(jù)同步,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-02-02Java解除文件占用即Dom4j操作后實(shí)現(xiàn)xml關(guān)流
這篇文章主要介紹了Java解除文件占用即Dom4j操作后實(shí)現(xiàn)xml關(guān)流,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04Springboot使用jxls實(shí)現(xiàn)excel模板導(dǎo)出excel方式
這篇文章主要介紹了Springboot使用jxls實(shí)現(xiàn)excel模板導(dǎo)出excel方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08淺談Java中OutOfMemoryError問(wèn)題產(chǎn)生原因
本文主要介紹了淺談Java中OutOfMemoryError問(wèn)題產(chǎn)生原因,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06