springboot项目 根据环境变量动态加载xml配置文件

springboot dubbo项目dubbo配置用的xml配置,各个不同环境(本地,测试服dev,正式服pro)配置会有所不同,需要根据环境使用对应的配置。

2种实现方法

第一种实现方法:

利用

  • ImportResource 加载的配置文件路径可以用${}占位符获得配置文件的属性值
  • application.properties 中 ${环境变量名: 默认值} 可以读取环境变量值,如果该环境变量值不存在使用默认值,如果不清楚 点击这里 springboot配置文件加载配置动态值,利用环境变量。

具体实现:

1、 项目中加载dubbo配置文件是在 启动类 上增加注解

@EnableDubboConfiguration
@ImportResource(locations = {"classpath:dubbo-${dubbo.env}.xml"})
@SpringBootApplication

2、在application.properties 文件中

#如果系统环境变量没有dubboEnv,那么 dubbo.env 的属性值是local
#如果dubboEnv环境变量值是dev,那么 dubbo.env 的属性值是dev
dubbo.env=${dubboEnv:local}

3、 有3个不同环境dubbo配置文件,内容就不描述了

dubbo-local.xml

dubbo-dev.xml

dubbo-pro.xml

springboot项目 根据环境变量动态加载xml配置文件_第1张图片

通过设置环境变量,启动程序时就能按照环境不同加载对应的dubbo xml配置文件了!

第二种方法

利用

  • 1 ImportResource 加载的配置文件路径可以用${}占位符获得配置文件的属性值
  • 2 启动程序时指定spring.properties.active 加载不同的 application.properties 配置文件,如果不清楚 点击这里:springboot项目启动时指定加载的配置文件 spring.properties.active,解决不同部署运行环境配置不同问题

和第一种方法有点类似,就不多废话了。

你可能感兴趣的:(springboot)