文章目录
应用配置,在官方文档也称为配置外部化,意思就是在不同的环境中使用相同的程序代码,也就是将代码和配置进行分离。
Spring Boot支持多种外部配置源,包括 Java 属性文件、YAML 文件、环境变量和命令行参数。配置的属性值可以通过使用 @Value 注释直接注入到你的 bean 中,通过 Spring 的 Environment 抽象访问; 也可以通过 @ConfigurationProperties 绑定到结构化对象。
0. 属性配置的优先级
Spring Boot 使用了一个非常特殊的 PropertySource 顺序,该顺序旨在允许合理地覆盖值。 属性按以下顺序考虑(后面的覆盖前面的):
- 默认配置: 使用
SpringApplication.setDefaultProperties
指定 - @Configuration 类上的 @PropertySource 注释。 请注意,在刷新应用程序上下文之前,此类属性源不会添加到环境中。 配置某些属性(例如 logging.* 和 spring.main.* 在刷新开始之前读取)就晚了。
- 在application.properties 等配置文件的配置数据
- 在random.*. 中的属性。 RandomValuePropertySource