文章目录
配置文件加载
版本信息:SpringBoot 2.6.1
1. profile 多环境适配
1.1 默认情况
默认读取 application.yaml 和 application.properties 配置文件
1.2 创建不同环境的配置文件
application-{env}.yaml,如下所示我创建了两个环境的配置文件 dev 环境和 prod 环境
1.3 激活指定环境的配置文件
- application.yaml 中配置 spring.profiles.active的值
- 启动jar包时指定
java -jar xxx.jar --spring.profiles.active=dev
1.4 总结
- 默认配置文件(application.yaml)和环境配置文件(例如application-dev.yaml)同时生效
- 默认配置文件(application.yaml)和环境配置文件(例如application-dev.yaml)中如果有同名的配置,那么会使用环境配置文件中值
- 启动jar包时通过命令行指定的配置会覆盖配置文件中的值
# 如果aplication.yaml中指定了person.name=zhangsan,
# 那么通过如下命令最终程序中读取到的person.name将是lisi
java -jar xxx.jar --person.name=lisi
2. @Profile 条件装配
对于注入到容器中的组件,可以增加@Profile注解,如下所示 TestService 只有在 dev 配置生效时才会被注入到容器中
这个环境也可以是一个数组
3. 配置文件读取路径
- classpath 根目录
- classpath 下的 config 目录
- jar 包所在目录
- jar 包所在目录下的 config 目录
- jar 包所在目录下的 config 目录的子目录
4. 配置文件的读取顺序
按照上面所写的配置文件读取路径的顺序进行读取,每个路径下配置文件的加载顺序如下图所示
注意: 后面配置文件中的同名配置会覆盖前面的