SpringBoot中spring.profiles.active配置实现多环境区分
作者:L-960
本文介绍了在SpringBoot项目中通过命名约定、启动参数和@Profile注解实现不同环境配置文件的切换,以及如何根据环境动态执行代码,具有一定的参加的参考价值,感兴趣的可以了解一下
spring boot允许通过命名约定按照一定的格式application-{profile}.properties
来定义多个配置文件,然后通过在application.properties
的spring.profiles.active
来具体激活一个或者多个配置文件,如果没有没有指定任何profile的配置文件的话,spring boot默认会启动application-default.properties。
在项目开发中有多个配置文件
application-dev.yml //开发环境 application-test.yml //测试环境 application-pro.yml //生产环境
1、只需要在源配置文件application.yaml上面增加下面的一个配置,就代表指定使用哪一个配置文件:
spring: profiles: active: dev #当前使用application-dev.yml配置
2、也可以在java启动参数中指定,动态选择运行环境
执行java -jar xxx.jar --spring.profiles.active=test
,运行测试环境的配置
执行java -jar xxx.jar --spring.profiles.active=prod
,运行生产环境的配置
3、也可以动态选择运行环境, 当没有指定环境的时候, 默认选择dev环境
spring: profiles: active: ${profile:dev} #当前使用application-dev.yml配置
4、在项目代码中使用@Profile区分环境,使某些代码在指定环境下执行
下面类只在dev环境下执行,其他环境不会生效
@Component @Slf4j @Profile("dev") //生产环境执行. public class InitOtherService implements ApplicationRunner { @Override public void run(ApplicationArguments args) throws Exception { // todo } }
到此这篇关于SpringBoot中spring.profiles.active配置实现多环境区分的文章就介绍到这了,更多相关SpringBoot 多环境区分内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!