SpringBoot配置文件
Spring Boot使用的配置文件的名字是固定的都是application,配置文件的类型可以是properties也可以是yml
- application.properties
- application.yml / application.yaml
配置文件的作用:修改Spring Boot自动配置的默认值
YAML(YAML Ain't Markup Language)
概述
以前的配置文件大多是xml文件,配置起来显得很冗长,很多。而yaml以数据为中心,比json、xml等更适合做配置文件
创建
yml文件写在跟application.properties文件同级的目录下,可以是application.yml,也可以是application.yaml
下面介绍yaml的写法,以修改端口为例,yaml的写法为
server: port: 8081
YAML语法
基本语法
-
k: v: 表示一对键值对(空格必须有)
-
以空格的缩进来控制层级关系,只要是左对齐的数据都是属于同一层级的
- 属性跟值的大小写敏感
server: port: 8081 path: /hello
值的写法
不管是在yaml还是在properties里面,值都有以下三种
字面量
字面量即普通的值,包括数字,字符串和布尔值等
写法:
k: v: 字面量
yaml中字符串不需要加上引号,如果加上了引号,对于不同的引号也有不同的作用
- "":双引号表示不会转义字符里面的特殊字符
- '':单引号表示会转义字符串里面的特殊字符,特殊字符最终只是一个普通的字符串
对象、Map
对象跟Map的值是属性跟值或者键值对
写法:
friends:
lastName: zhangsan
age: 20
除了上面的写法,其实还有一种写法,叫做行内写法
行内写法:
friends: {lastName: zhangsan, age: 20}
数组、List、Set
数组等用 -值 的形式代表数组中的一个值
写法:
pets:
-cat
-dog
-pig
它也有行内写法
行内写法:
pets: [cat, dog, pig]
配置文件注入
在配置文件中写好值后就需要注入了,对于Spring Boot配置的默认值修改当然不需要注入,只管修改,Spring Boot已经做好了注入,但是对于我们自己写的类里面的属性还是有必要做注入的,那么注入的方式有哪些呢?这里列举两种,分别是使用 @ConfigurationProperties 注解跟 @Value 注解注入配置文件中的值,当然,无论使用哪一种方式注入,都需要先使用 @Component 注解把类加载到容器中才能生效,下面介绍两种注入方式
注入方式一:@ConfigurationProperties
配置文件
配置文件可以选取yml文件,也可以选取properties文件,下面对两种文件都做介绍
使用yml写:
person: lastName: hello age: 18 boss: false birth: 2017/12/12 maps: {k1: v1, k2: v2} lists: - lisi - zahngsan dog: name: 小狗 age: 2