温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2020-06-30 05:36:32 来源:网络 阅读:3136 作者:独孤环宇 栏目:开发技术

背景介绍:

      由于新的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

       



向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI