SpringBoot学习(二)SpringBoot的配置
配置文件
全局配置文件
SpringBoot使用一个全局的配置文件,配置文件名称是固定的,修改自动配置的默认值
- application.properties
- application.yml
YAML(YAML Ain’t Markup Language)
YAML A Markup Language(YAML 是一种标记语言),YAML isn’t Markup Language(YAML 不是一种标记语言)。以数据为中心
spring:
application:
name: springboot-02-config
server:
port: 8080
YAML语法
基本语法
key:(空格)value
:表示已对键值对,空格必须有。以空格缩进来控制层级关系,只要左对齐的一列数据,都是同一个层级。属性和值大小写敏感。
字面量,普通的值(数字、字符串、布尔)
key: value
:字面量直接写,字符串默认不加单双引号
“”(双引号): 不会转义特殊字符,特殊字符会作为本身想表示的意思输出
name: "zhangsan \n lisi"
# 输出
zhangsan
lisi
‘’(单引号): 会转义特殊字符,将特殊字符作为普通字符串输出
name: 'zhangsan \n lisi'
# 输出
zhangsan \\n lisi
对象、map(键值对)
key: value
# 一般写法
user:
name: zhangsan
age: 20
# 行内写法
student: {
name: zhangsan, age: 20}
数组(List、Set、Array)
用- value
表示数组中的一个元素
# 一般写法
pets:
- cat
- dog
- pig
# 行内写法
myPets: [cat, dog, pig]
配置文件值注入
@ConfigurationProperties
默认从全局配置文件中获取值
YAML 文件配置
@ConfigurationProperties(prefix = "person")
:SpringBoot将本类中所有属性和配置文件中相关的配置进行绑定
prefix = "person"
:设置绑定配置的前缀
需要组件是容器中的组件,才能使用容器提供的
@ConfigurationProperties(prefix = "person")
功能。使用注解@Componet
将组件添加到容器中
导入配置文件处理器,配置文件进行绑定就会有提示。导入之后需要重启应用
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
application.yml
spring:
application:
name: springboot-02-config
server:
port: 8080
person:
lastName: zhangshan
age: 18
boss: false
birth: 2017/12/11
maps: {
k1: v1, k2: v2}
list:
- lishi
- wangwu
pet:
name: 大黄
age: 12
Person.java
import lombok.D