在resources 下创建 application-{profile}.properties 的配置文件,其中profile是任意名字:
test:测试环境
prod:线上环境
pre-prod:预发布环境
这些配置文件可以添加或者覆盖 application.properties 文件的属性
在环境变量中,spring.profiles.active 指定使用那个profile 比如:
java -jar -Dspring.profiles.active=prod ....jar
使用war方式部署,添加系统属性是比较好的方式以tomcat为例,编辑catalina.sh
在sh文件的头部添加如下内容:
JAVA_OPTS="-Dspring.profiles.active=prod"
在多环境部署中,通常resources目录下可能没有目标环境的配置文件,这主要是为了安全考虑,可以将配置文件放到特定的目录中,并用 spring.config.loaction指定配置文件的目录。
java -jar -Dspring.config.location=file:env/ -Dspring.profiles.active=test target/....jar
配置文件位于当前目录的env目录下,
springboot会自动搜索classpath: ,calsspath:/config ,file:,file:/config 这些目录下的配置文件优先级由低到高。
@Profile注解
@Profile注解可以结合@Configuration 和@Component使用,以决定配置类是否生效。