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
}
}