您好,登錄后才能下訂單哦!
背景介紹:
由于新的spring boot項目需要使用老的jar包,老的jar包的配置是用xml方式配置的,而且開發development、測試test、集成off、正式production環境都會有所不同,這種時候我們就需要讓spring boot 分環境加載不同的xml配置文件。
方案簡介:
spring boot的 @ConditionalOnProperty注解可以讓我們根據條件加載@Configuration配置;@ImportResource注解可以導入xml配置文件;application-環境.yml方式可以給不同的環境配置不同的屬性值。結合這3個特性,我們可以實現分環境加載xml配置文件的目的。
具體實踐步驟:
(1)在application-development.yml中加入配置:importEnv: development
(2)在application-test.yml中加入配置:importEnv: test
(3)將要分環境加載的xml配置分為多個文件,每個文件中寫各自環境相關的配置,例如:spring-development.xml,spring-test.xml
(4)加入配置類
@Configuration public class ResourceConfig { @Configuration @ConditionalOnProperty(name = "importEnv", havingValue = "development") @ImportResource(locations={"classpath:spring-development.xml"}) class ResourceDevelopment{ @Bean public Test test(){ System.out.println("==================development========================="); return new Test(); } } @Configuration @ConditionalOnProperty(name = "importEnv", havingValue = "test") @ImportResource(locations={"classpath:spring-test.xml"}) class ResourceTest{ @Bean public Test test(){ System.out.println("==================test========================="); return new Test(); } } }
測試:
在application.yml配置中修改環境變量啟動,可以看到不同的環境加載了不同的配置
#spring active env spring: application: name: test1 profiles: active: development
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。