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