背景介绍:

由于新的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{@Beanpublic Test test(){System.out.println("==================development=========================");return new Test();}}@Configuration@ConditionalOnProperty(name = "importEnv", havingValue = "test")@ImportResource(locations={"classpath:spring-test.xml"})class ResourceTest{@Beanpublic Test test(){System.out.println("==================test=========================");return new Test();}}
}

测试:

在application.yml配置中修改环境变量启动,可以看到不同的环境加载了不同的配置

#spring active env
spring:application:name: test1profiles:active: development

转载于:https://blog.51cto.com/snowtiger/2074568

spring boot分环境导出自定义xml配置相关推荐

  1. Spring boot 集成工作流flowable去掉xml配置

    工作流Flowable和Spring集成时,有一个xml是用来配置ProcessEngine的信息,xml的内容如下所示: <?xml version="1.0" encod ...

  2. spring boot多环境配置

    spring boot多环境配置 通过多环境配置,可以实现生产环境和测试环境灵活切换. 主配置文件加载生产环境配置文件语法: spring.profiles.active=pro 注意一旦pro被激活 ...

  3. 从零搭建一个 Spring Boot 开发环境!Spring Boot+Mybatis+Swagger2 环境搭建

    从零搭建一个 Spring Boot 开发环境!Spring Boot+Mybatis+Swagger2 环境搭建 本文简介 为什么使用Spring Boot 搭建怎样一个环境 开发环境 导入快速启动 ...

  4. Spring Boot教程(一)注解配置与EhCache使用

    2019独角兽企业重金招聘Python工程师标准>>> 快速入门 首先,下载样例工程chapter3-2-2.本例通过spring-data-jpa实现了对User用户表的一些操作, ...

  5. Spring Boot(一) 自动装配--约定大于配置

    欢迎去我的个人博客--晓坞坐坐,里面有很多有趣的文章,不止是技术.www.lixiaodongisme.com 随着spring体系的发展,我们在开发时需要配置整合的东西也越来越多,在进行开发时,繁琐 ...

  6. spring boot 使用application.properties 进行外部配置

    2019独角兽企业重金招聘Python工程师标准>>> application.properties大家都不陌生,我们在开发的时候,经常使用它来配置一些可以手动修改而且不用编译的变量 ...

  7. Spring Boot面试必问:自动配置原理

    Spring Boot自动配置原理 在传统的SSM框架集成中,需要编写大量的XML配置文件,比如集成Mybatis时,需要编写mybatis_config.xml文件,在集成springmvc时,需要 ...

  8. 学习第五篇:【SpringBoot-Labs】Spring Boot 调试环境、热部署入门、Lombok、MapStruct入门

    本周(8.21-8.27)将学习芋道 Spring Boot的以下文章: 8.21: 快速入门 8.22:Spring Boot 自动配置原理 .Jar 启动原理 8.23:调试环境. 热部署入门.消 ...

  9. spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,定时任务案例...

    本文介绍spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,定时任务案例 集成swagger--对于做前后端分离的项目,后端只需要提供接口访问,swagger提供了接口 ...

最新文章

  1. 实现nginx上配置免费证书Let's Encrypt
  2. 高效的找出两个List中的不同元素
  3. Linux LVM卷挂载
  4. ActFrameWork集成Beetlsql的Mapper功能
  5. 基于移动端Reactive Native轮播组件的应用与开发详解
  6. 8587520在51CTO【礼树迎蛇 红满社区】
  7. 一站式数据采集存储的利器:阿里云InfluxDB®️数据采集服务
  8. linux推出超级用户_linux添加root权限用户
  9. oracle11g 未,Oracle11g链接提示未“在本地计算机注册“OraOLEDB.Oracle”解决方法
  10. CSS设计指南(第3版)
  11. [转]-Sublime Text 3最好的功能、插件和设置
  12. 如何在Mac上更改“终端”窗口光标?
  13. easydarwin 安装_win10安装EasyDarwin并作为流媒体服务器的推流和拉流实例
  14. 赛尔号登录器显示服务器未开启,赛尔号登录界面改版啦!
  15. 美洽客服报表功能:用数据驱动企业业绩增长
  16. 文本数据挖掘实验:文本分类
  17. 什么是robots协议,robots文件的作用有哪些!
  18. 26.(cesium之家)cesium军事标绘-攻击箭头编辑修改(燕尾)
  19. LensFlare Studio for Mac 6.3 镜头光晕特效软件 破解版下载
  20. Python-day11~13-前端初步

热门文章

  1. KVM中virtio-user工作思路(十二)
  2. 电力“十三五”蓝图发布 新能源迎发展机遇
  3. iOS VideoToolbox硬编H.265(HEVC)H.264(AVC):1 概述
  4. PHP双引号的小隐患
  5. RecyclerView解析--onViewDetachedFromWindow()/onViewAttachedToWindow()
  6. 关于sqlserver和oracle的一点感受
  7. 检测一个网页上的链接是否都可以正常访问
  8. linux 内核生成
  9. Sound Mixer Fader
  10. 阿杜版主 我找您有事想请教下您!!