1. 程式人生 > >spring boot分環境導出自定義xml配置

spring boot分環境導出自定義xml配置

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配置