一、Profile功能
多环境配置文件处理。
1、在application.properties 使用 spring.profiles.active=dev\pro,标注用哪个配置文件
相关规则:
- 默认配置文件一定会激活,任何时候加载,需要指定环境配置文件
- 相同配置项,环境文件的优先
2、打包的方式,进行切换 java -jar xx.jar --spring.profiles.active=dev,这样使用命令行方式,其实是修改配置文件中的变量值
3、使用@Profile 注解不同环境的组件注入
4、Profile分组,其实就是对不同配置文件进行组合。
二、外部化配置
1、一下都可以作为配置信息的来源
- 获取环境变量
- 命令行参数
- 配置文件
- 系统相关内容
2、优先级,排序越大优先级越高
3、属性文件的读取,优先级也是从下往上
- classpath 根路径
- classpath 根路径下的config目录
- jar包当前目录
- jar包当前目录的config目录
- /config子目录的直接子目录(config下的一级文件)Linux环境下的
总结一句话,命令行 > 外部 > 内部,越后加载的优先级越高,因为会覆盖之前的属性。