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