SpringBoot03-yaml–是什么?怎么用?
【预备知识】
我们使用springboot自己默认的配置肯定是不行的,我们需要进行自己的配置,那么这些配置在哪里配呢?
【SpringBoot配置文件】
SpringBoot使用的是一个全局的配置文件,这个全局配置文件的名字是固定的(application),配置文件的格式有两种:
1)application.properties
语法:key=value
2)application.yaml
语法: key:空格 value
配置的作用:修改springboot的自动装配的默认配置为我们想要的配置。
什么是YAML?
【概念】:
YAML是"YAML Ain’t a Markup Language" (YAML不是一种置标语言)
— 到底是什么东西?我也没搞明白,就当作是一个配置文件的形式吧!
【yaml语法】:
基础语法:
server:
port: 8080
#对象的写法
##注意【:】后面必须加上 空格 对空格的要求十分的高
## 注意:yaml的配置可以直接注入到配置类中
student:
name: qinjiang
age: 80
##对象的行内写法
student1: {name: qinjiang,age: 88}
##数组
animal:
-dog
-cat
-fish
##数组的行内写法
vegetables: [phtato , mushroom]
【配置文件的其他的功能】
— 还可以给类中的属性赋值。
1.【使用 yaml 赋值】【重点】
步骤:
1.1 写入键值对信息。对应的键名和要赋值的类的属性名相同。
1.2 在要赋值的类上写上
2.【使用properties赋值】
@ConfigurationProperties(prefix = "person")
和上述的yaml一样写上对应的键值对,
并在类上加上:
@PropertySource("classpath:dog.properties")
但是在要赋值的每一个属性上写上下面的注解进行单独赋值:
@Value("${xxx}")
yaml优点:支持松散绑定;JSR303数据校验;复杂类型封装
properties优点:支持Spel的使用。
【什么是松散绑定?】
比如在yaml中写的last-name就等同于lastName,【-】后跟的字母默认就是大写的
这个就是松散绑定
【JSR303数据校验】:就是给字段加上校验,保证数据合法,防止非法的数据赋值给字段。
【两种方式的比较】
— 复杂类型的封装,建议使用yaml封装对象后一次性赋值。
【拓展】:JSR数据校验
用于对值给字段的数据进行校验
使用方法:
【1】在类前加上 @Validated 注解,表示需要对类进行校验;(validated:经过验证的)
【2】在需要进行验证的属性前加上对应的校验注解,比如: @Email() 还有其他的注解,非空等等
更多的注解,详情百度搜索【JSR303数据校验】即可。
注意事项:
新版本的JSR303数据校验需要添加校验的依赖,启动器:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>