spring boot分環境導出自定義xml配置
阿新 • • 發佈:2018-03-02
springboot 分環境 xml配置背景介紹:
由於新的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
spring boot分環境導出自定義xml配置