Spring Boot 3.x特性-配置与配置源
系列文章:Spring Boot 3.x 系列教程
文章目录
-
- 1.外部化配置
- 2.访问命令行属性
- 3.
JSON应用程序属性 - 4.外部应用程序属性
-
- 可选的路径
- 通配符路径
- Profile特定文件
- 导入附加数据
- 导入无扩展名文件
- 使用配置树
- 属性占位符
- 使用多文档文件
- 激活属性
- 使用YAML
-
- YAML映射到属性
- 直接加载YAML
- 配置随机值
- 配置系统环境属性
1.外部 化配置
Spring Boot支持外部化配置,这样就可以在不同的环境中使用相同的应用程序代码。你可以使用各种外部配置源,包括Java属性文件、YAML文件、环境变量和命令行参数。
属性值可以通过使用@Value注释直接注入到bean中,可以通过Spring的Environment抽象访问,也可以通过@ConfigurationProperties绑定到结构化对象。
Spring Boot使用了一个非常特殊的PropertySource顺序,其目的是允许合理地重写值。属性优先级按以下顺序(排序后的项覆盖前面的项)
1、 默认配置,(SpringApplication.setDefaultProperties设置的属性);
2、 @PropertySource注解配置在@Configuration类上,但是需要注意,在刷新应用程序上下文之前,这样的属性源不会添加到Environment中这对于配置某些属性(如logging.*spring.main.*)已经太迟了,这些属性需要在刷新开始之前被读取;
3、 配置数据,比如application.properties配置文件;
4、 RandomValuePropertySource,它的属性只有random.*;
5、 操作系统环境变量;
6、 Java系统属性(System.getProperties());
7、 来自java:comp/env的JNDI属性;