一文弄懂Spring Boot 配置实现方案

一、配置方式

Spring Boot 允许使用的外部配置方式包括:
  • properties 格式配置文件
  • YAML 格式配置文件
  • 环境变量
  • 命令行参数

二、注入方式

属性值可以使用注解@Value注入 Bean 对象中,或通过@ConfigurationProperties注解绑定到类定义上。

三、属性值优先级

属性值按以下优先级顺序覆盖:
  • Devtools激活时home目录下全局设置属性
  • 添加@TestPropertySource注解的测试
  • 测试中的属性,可在@SpringBootTest注解和用于测试应用程序特定片段的测试注解
  • 命令行参数
  • SPRING_APPLICATION_JSON中属性,嵌入在环境变量或系统属性中的内联JSON
  • ServletConfig初始化参数
  • ServletContext初始化参数
  • java:comp/envJNDI属性
  • Java系统属性System.getProperties()
  • 操作系统环境变量
  • 仅在random.*中拥有属性的RandomValuePropertySource
  • 打包jar文件外的Profile指定应用属性(application-{profile}.propertiesYAML
  • 打包jar文件内的Profile指定应用属性(application-{profile}.propertiesYAML
  • 打包jar文件外的应用属性(application-{profile}.propertiesYAML
  • 打包jar文件内的应用属性(application-{profile}.propertiesYAML
  • 定义@Configuration类中使用@PropertySource注解的属性
  • SpringApplication.setDefaultProperties指定的默认属性

四、配置文件格式

Spring Boot 接受propertiesYAML两种格式的配置文件,默认生成properties格式配置文件,但YAML格式配置文件层级关系更清晰,且在同样配置下占用的字符数可能比properties格式文件更少。YAML格式配置文件后缀名为.yml

五、配置文件位置

Spring Boot 会从以下位置加载配置文件:
  • 当前目录下/config子目录
  • 当前目录
  • 类路径下/config
  • 类路径根目录
注意:
  • 以上列表中较高位置定义的属性会覆盖较低位置中定义的属性;
  • 推荐将所有配置文件统一放在一个config子目录中。
#java实习##学习路径#
全部评论
感谢大佬分享!!!!
点赞 回复 分享
发布于 2022-01-13 16:09

相关推荐

04-28 11:34
西北大学 运营
牛客4396号:不好意思,这个照片猛一看像丁真
点赞 评论 收藏
分享
评论
点赞
3
分享

创作者周榜

更多
牛客网
牛客企业服务