SpringBoot實(shí)現(xiàn)配置文件的替換
SpringBoot配置文件的替換
使用spring.profiles.active
在工作中,測(cè)試或上線(xiàn)的時(shí)候一定會(huì)遇到的問(wèn)題就是修改配置。一般來(lái)說(shuō)都有如下幾種配置可用:dev(開(kāi)發(fā)環(huán)境),test(測(cè)試環(huán)境),pro(生產(chǎn)|線(xiàn)上環(huán)境)。這時(shí)候,我們就需要去注釋掉配置文件中的所有配置,再解開(kāi)需要的配置。這時(shí)候,就可以通過(guò)spring.profiles.active的配置來(lái)解決這個(gè)問(wèn)題。
application.properties
根據(jù)不同的環(huán)境創(chuàng)建不同的properties文件,如application-dev.properties,application-test.properties,application-pro.properties。
創(chuàng)建application.properties,內(nèi)容如下:
spring.profiles.active=dev # test測(cè)試、pro生產(chǎn)
然后通過(guò)修改application.properties來(lái)更改不同的配置。
application.yml
同上,根據(jù)不同的環(huán)境創(chuàng)建不同的yml配置文件,以后綴區(qū)分(如:application-dev.yml)。
創(chuàng)建application.yml,內(nèi)容如下:
spring: profiles: active: test # dev開(kāi)發(fā)、pro生產(chǎn)
同上,修改配置文件只需要更改application.yml文件即可。
SpringBoot讀取配置文件匯總
1、使用注解@ConfigurationProperties映射
通過(guò)注解@ConfigurationProperties(prefix=“配置文件中的key的前綴”)可以將配置文件中的配置自動(dòng)與實(shí)體進(jìn)行映射application.properties配置。
2、使用注解Value("${key}")映射
可以通過(guò)@Value注解將配置文件中的值映射到一個(gè)Spring管理的Bean的字段上。
3、使用注解@PropertySource("classpath:xxx.properties")
加載自定義屬性文件的注解
專(zhuān)門(mén)用來(lái)加載指定位置的properties文件,需與@ConfigurationProperties(prefix ="" )配合使用,Spring暫未提供加載指定位置yml文件的注解。
4、使用 Environment
這個(gè)環(huán)境配置類(lèi),不光能讀取配置文件,還能讀取系統(tǒng)變量,比如jdk版本,當(dāng)前操作系統(tǒng)類(lèi)型,用戶(hù)目錄等等。
5、使用@ImportResource注解
使用將外部的配置文件加載到程序中來(lái),比如我們定義一個(gè)beans.xml文件,里面配置了一個(gè)bean,默認(rèn)情況下這個(gè)bean是不會(huì)加載到Spring容器中來(lái)的。我們需要@ImportResource(locations = {"classpath:beans.xml"})注解將這個(gè)配置文件加載進(jìn)來(lái)。SpringBoot推薦使用配置類(lèi)的方式給容器中添加組件。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
java利用JEXL實(shí)現(xiàn)動(dòng)態(tài)表達(dá)式編譯
這篇文章主要介紹了java利用JEXL實(shí)現(xiàn)動(dòng)態(tài)表達(dá)式編譯,系統(tǒng)要獲取多個(gè)數(shù)據(jù)源的數(shù)據(jù),并進(jìn)行處理,最后輸出多個(gè)字段。字段的計(jì)算規(guī)則一般是簡(jiǎn)單的取值最多加一點(diǎn)條件判斷,下面是具體的實(shí)現(xiàn)方法2021-04-04Spring AOP如何在注解上使用SPEL表達(dá)式注入對(duì)象
這篇文章主要介紹了Spring AOP如何在注解上使用SPEL表達(dá)式注入對(duì)象,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02Java實(shí)現(xiàn)簡(jiǎn)易生產(chǎn)者消費(fèi)者模型過(guò)程解析
這篇文章主要介紹了Java實(shí)現(xiàn)簡(jiǎn)易生產(chǎn)者消費(fèi)者模型過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06Java使用synchronized修飾方法來(lái)同步線(xiàn)程的實(shí)例演示
synchronized下的方法控制多線(xiàn)程程序中的線(xiàn)程同步非常方便,這里就來(lái)看一下Java使用synchronized修飾方法來(lái)同步線(xiàn)程的實(shí)例演示,需要的朋友可以參考下2016-06-06SpringBoot詳解實(shí)現(xiàn)自定義異常處理頁(yè)面方法
SpringBoot是Spring全家桶的成員之一,是一種整合Spring技術(shù)棧的方式(或者說(shuō)是框架),同時(shí)也是簡(jiǎn)化Spring的一種快速開(kāi)發(fā)的腳手架2022-06-06Java使用Condition實(shí)現(xiàn)精準(zhǔn)喚醒線(xiàn)程詳解
這篇文章主要為大家詳細(xì)介紹了Java如何使用Condition實(shí)現(xiàn)精準(zhǔn)喚醒線(xiàn)程效果,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下2023-02-02spring學(xué)習(xí)之@SessionAttributes實(shí)例解析
這篇文章主要介紹了spring學(xué)習(xí)之@SessionAttributes實(shí)例解析,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-02-02