Profile(配置文件)功能
为了方便多环境适配,springboot简化了profile功能。在默认配置上,激活其它profile(配置文件)环境
application-profile功能
激活单个profile环境配置
-
默认配置文件 application.properties、application.yaml、application.yml,任何时候都会加载
-
环境配置文件 application-{env}.yaml
-
激活指定环境(配置文件),有两种方法:
1、 在默认配置文件激活
2、把项目package打包成jar,用命令行激活
java -jar xxx.jar --spring.profiles.active=xxx
修改配置文件的任意值,命令行优先
java -jar xxx.jar --spring.profiles.active=xxx --person.name=xxx
命令行激活 优先于 在默认配置文件激活 -
默认配置与环境配置同时生效
-
同名配置项,激活的配置文件(profile)配置优先
profile分组
激活多个profile环境配置
# 激活 分组中的全部配置文件,优先级:数字大的覆盖数字小的配置文件
spring.profiles.active=myprofile
# myprofile 为自定义分组名,把需要激活的配置文件加进去
spring.profiles.group.myprofile[0]=prod
spring.profiles.group.myprofile[1]=ppd
@Profile条件装配功能
@Profile 标注在类和方法上
用法:
@Configuration(proxyBeanMethods = false)
@Profile("production")
public class ProductionConfiguration {
// ...
}
@Profile(“production”) 只有激活 production 的配置文件,@Profile(“production”) 标注的类和方法才生效
外部配置源
常用:Java属性文件、YAML文件、环境变量、命令行参数;
配置文件查找位置:
(1) classpath 根路径
(2) classpath 根路径下config目录
(3) jar包当前目录(jar包 指的是 把项目打包成jar包的jar包)
(4) jar包当前目录的config目录
(5) /config子目录的直接子目录
后面的可以覆盖前面的同名配置项
外部配置文件不用激活,放在上述位置,自动生效
配置文件加载顺序:
- 当前jar包内部的application.properties和application.yml
- 当前jar包内部的application-{profile}.properties 和 application-{profile}.yml
- 引用的外部jar包的application.properties和application.yml
- 引用的外部jar包的application-{profile}.properties 和 application-{profile}.yml
指定环境优先,外部优先,后面的可以覆盖前面的同名配置项
纯属个人经验,喜欢的可以点赞关注,后续见!!!