您的位置:首页 > 编程语言 > Java开发

spring boot分环境导出自定义xml配置

2018-03-02 11:01 781 查看
背景介绍:
由于新的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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  springboot 分环境 xml