二.配置文件
1.配置文件
Spring Boot使用一个全局的配置文件,名称固定
application.properties 或者 application.yml
配置文件的作用:修改Spring Boot自动配置的默认值
1).YML(YAML)配置文件
YAML(YAML Ain’t Markup Language)
以前的配置文件大多使用xxxx.xml文件.而YAML文件以数据为中心,更适合做配置文件.实例:
server:
port: 8089
2).YAML语法
(1).基本语法
K:(空格)Y 表示一对键值对(空格不可省略)
以锁紧来控制层级关系,左侧对齐的一列数据都属于一个层级.
属性和值都是大小敏感的.
(2).值的写法
字面量: 普通的值(数字, 字符串, 布尔):
K: V 直接写
字符串不需要加上单引号和双引号
“”: 双引号不会转义特殊字符
‘’:单引号会转义
name: Benjamin
对象和Map(属性和值):
K: V
对象还是K:V的方式
people:
name: Benjamin
age: 20
行内写法:
people: {name: Benjamin,age: 20}
数组(List, Set):
用 -V 表示数组中的一个元素
people:
-Benjamin
-Blue
行内写法:
people: [Benjamin,Blue]
(3).从配置文件中获取值
<!-- 配置文件处理器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
@ConfigurationProperties(prefix = “persen”)
将配置文件中的person下的配置与本类中的属性进行绑定
这个类需要被放入spring容器
测试:
结果:
Persen{name='Benjamin', age=20, aBoolean=true, birth=Sat Jul 17 00:00:00 CST 1999, map={k1=v1, k2=v2}, list=[l1, l2], dog=Dog{name='aaa', age=2}}
也可以使用@Value(“SpEL表达式”)进行单个属性的注入
(4).两种注入方式的区别
@ConfigurationProperties | @Value | |
---|---|---|
功能 | 批量进行属性的注入 | 单个注入属性 |
松散绑定 | 支持 | 不支持 |
SpEL | 不支持 | 支持 |
JSR303校验 | 支持 | 需要@Validated注解支持 |
松散绑定是指,属性名例如personName可以被person-name,person_name,personName等类似命名方式匹配