一文弄懂Spring Boot 配置实现方案
一、配置方式
Spring Boot 允许使用的外部配置方式包括:
properties格式配置文件YAML格式配置文件- 环境变量
- 命令行参数
二、注入方式
属性值可以使用注解@Value注入 Bean 对象中,或通过@ConfigurationProperties注解绑定到类定义上。
三、属性值优先级
属性值按以下优先级顺序覆盖:
Devtools激活时home目录下全局设置属性- 添加
@TestPropertySource注解的测试 - 测试中的属性,可在
@SpringBootTest注解和用于测试应用程序特定片段的测试注解 - 命令行参数
SPRING_APPLICATION_JSON中属性,嵌入在环境变量或系统属性中的内联JSONServletConfig初始化参数ServletContext初始化参数java:comp/env中JNDI属性Java系统属性System.getProperties()- 操作系统环境变量
- 仅在
random.*中拥有属性的RandomValuePropertySource - 打包
jar文件外的Profile指定应用属性(application-{profile}.properties及YAML) - 打包
jar文件内的Profile指定应用属性(application-{profile}.properties及YAML) - 打包
jar文件外的应用属性(application-{profile}.properties及YAML) - 打包
jar文件内的应用属性(application-{profile}.properties及YAML) - 定义
@Configuration类中使用@PropertySource注解的属性 SpringApplication.setDefaultProperties指定的默认属性
四、配置文件格式
Spring Boot 接受properties和YAML两种格式的配置文件,默认生成properties格式配置文件,但YAML格式配置文件层级关系更清晰,且在同样配置下占用的字符数可能比properties格式文件更少。YAML格式配置文件后缀名为.yml。
五、配置文件位置
Spring Boot 会从以下位置加载配置文件:
- 当前目录下
/config子目录 - 当前目录
- 类路径下
/config包 - 类路径根目录
注意:
- 以上列表中较高位置定义的属性会覆盖较低位置中定义的属性;
- 推荐将所有配置文件统一放在一个
config子目录中。
链接:https://juejin.cn/post/7038900703314018341
查看5道真题和解析
上海得物信息集团有限公司公司福利 1176人发布