场景
多个环境切换时有些配置是共用的,不需要都配置
如下3个文件只有数据库不同,可以抽取一个公共的配置:
application-dev.properties:开发环境
application-test.properties:测试环境
application-prod.properties:生产环境
application.properyies通过spring.profiles.active来具体激活一个或者多个配置文件,如果没有指定任何profile的配置文件的话,spring boot默认会启动application-default.properties。
配置说明
在Spring Boot中多环境配置文件名必须满足:
application-{profile}.properties的固定格式,
其中{profile}对应你的配置属性spring.profiles.active
方式一:spring.cloud.config.name
使用了配置中心
#加载多个配置文件
spring.cloud.config.name=special, common
方式二:spring.profiles.include
测试一:
application.properties
spring.profiles.active=mypro1,mypro2
user=default
application-mypro1.properties
user=mypro1
application-mypro2.properties
user=mypro2
结果:mypro2
加载顺序:The following profiles are active: mypro1,mypro2
测试二:
application.properties
spring.profiles.active=mypro
spring.profiles.include=mypro1,mypro2
user=default
application-mypro.properties
user=mypro
application-mypro1.properties
user=mypro1
application-mypro2.properties
user=mypro2
结果:mypro2
加载顺序:The following profiles are active: mypro,mypro1,mypro2
注意
application.properties文件始终会加载
命令带参数优先级最高,如:
java -jar example.jar --spring.profiles.active=mypro2
优先级
启动命令spring.profiles.active指定文件中的值 > 文件中spring.profiles.active指定的文件列表中最后一次出现的值 > 文件中spring.profiles.include指定的文件列表中最后一次出现的值