SpringBoot配置详解
简述
springboot是基于约定的,所以很多配置都有默认的值,但如果想用自己的配置替换掉默认的配置的话,就可以使用application.properties或者application.yml(application.yml)进行配置
yml和properties的区别
properties文件和我们平常写的是一样的,就是键值对
server.port=8080
而yml的写法略有不同,需要注意的是子属性有缩进,且值前面有空格
server:
port: 8080
优先级
properties文件的优先级>yml>yaml
YAML简介
YAML是YAML Ain‘t Markup Language的缩写。YAML是一种直观的能够被电脑识别的数据序列化格式,并且容易被人类阅读,容易和脚本语言交互,可以被支持YAML库的不同的编程语言导入。YAML是以数据为核心的,比传统的xml方式更加简洁。
YAML基本语法
大小写敏感
数据值前边必须有空格,作为分隔符
使用缩进表示曾经关系
缩进时不允许使用tab,只允许使用空格
缩进的空格数不重要,只要相同层级的元素左对齐即可
#表示注释,从#到行尾,都会被解析器忽略
YML数据格式
读取配置文件内容
一共有三种方式来读取我们的配置文件内容:
@Value注解
这也是spring框架支持的解析方式,我们可以在需要注入的变量的上方加value注解,注解值支持spel表达式,写上"${properties的键名}"即可获取到对应的值
Environment方式
我们可以在类中定义一个Environment类型的变量,通过Autowired注解在spring容器初始化好这个变量。
我们就可以用它的getProperty("properties的键名")方法获取到value值
ConfigurationProperties注解
我们在实体类上方使用ConfigurationProperties注解,意思就是这个类和配置文件相映射
注解的值就是配置文件里的父级键名,我们写person就意味这要在配置文件里找person前缀的值,并把值注入person对象
当spring将person类加入核心容器时就会自动将配置文件里的值进行注入