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

