SpringBoot解决测试环境,生产环境使用不同application.properties的问题
如何获取你写的Active Profile呢?可以在SpringBoot的启动类中加入如下一行代码
public static void main(String[] args) {
ApplicationContext app = SpringApplication.run(MimsApplication.class, args);
String activeProfile = app.getEnvironment().getActiveProfiles()[0];
}
当然,你也可以编写工具类来存储这个值。
知道了当前系统属于什么环境,就可以根据不同的环境来使用不同的配置变量。
在服务器启动的时候,可以使用 java -jar XXX.jar --spring.profiles.active=sit 来告诉spring使用哪个application文件
对于测试环境和线上环境使用不同组件的问题,可以使用@Profile注解,在spring的组件上加上如下代码,则表示该组件是在uat环境和pro环境下使用
@Profile({"uat","pro"})