springboot项目中不同配置文件的优先加载顺序 为:properties> yml >yaml>自定义核心类配置
自定义配置文件的加载
一般系统会加载默认的application.properties或者application.yml,但如果使用自定义配置文件,可使用下面方式进行加载:
@PropertySource("classpath:myApplication.properties")加载自定义配置
此种加载方式优先级最低,springboot会先加载系统默认的核心配置类
1、大小写敏感
2、属性层级关系
3、使用缩进表示层级关系 同层级左侧对齐(空格只允许使用空格-两个空格键)
4、属性与之间有空格
Spring Boot 会按照特定的顺序加载属性文件,并采用最后覆盖原则,这意味着最后读取的属性源将覆盖先前的属性源中相同的属性。
@Value读取配置文件属性
特点:只能读取单一属性
#对象
data1:
66
#多层嵌套
data2:
key: key
value: value
#数组
data3:
- 1
- 男
- 李华
data4: [2,男,张明]
#复杂数据类型
data5:
name:
- li
- huang
subject:
- 离散数学
- 数据结构
- 操作系统
##多维数组
data6:
-
name: 老李
age: 20
-
name: 老黄
age: 40
@Value("${data1}")
String data1name;
@Value("${data2.key}")
String data2name;
@Value("${data3[2]}")
String data3name;
@Value("${data4[1]}")
String data4name;
@Value("${data5.subject[1]}")
String data5name;
@Value("${data6.[1].name}")
String data6name;
@RequestMapping("/show")
public String test02(){
System.out.println("读取当前yml文件中data1中的属性==>"+data1name);
System.out.println("读取当前yml文件中data2中的属性==>"+data2name);
System.out.println("读取当前yml文件中data3中的属性==>"+data3name);
System.out.println("读取当前yml文件中data4中的属性==>"+data4name);
System.out.println("读取当前yml文件中data5中的属性==>"+data5name);
System.out.println("读取当前yml文件中data6中的属性==>"+data6name);
return "name";
}
@ConfigurationProperties 是Spring Framework中用于将配置文件中的属性绑定到Java对象的注解,可以达到多属性注入。
#将属性封装到实体类中
user:
id: 1
name: lihua
hobby: phino
注意:user属性必须和yml文件中的属性名一致