基础语法
- 大小写敏感
- 使用缩进表示层级关系
- 缩进不允许使用tab,只允许空格
- 缩进的空格数不重要,只要相同层级的元素左对齐即可
- ‘#‘表示注释
支持的数据类型
对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
key: child-key1: value1 child-key2: value2
数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
key: - value1 - value2 - value3 # 也支持中括号包裹的写法 key: [value1, value2, ...]
纯量(scalars):单个的、不可再分的值
- 字符串
- 布尔值
- 整数
- 浮点数
- Null
- 时间
- 日期
# 注意,以下YAML代码,是用来转换成 JSON格式 时的例子 # 当用来 将其数据转换并注入 Java对象中的属性时,部分的格式(时间+日期)需要更改一下 boolean: - TRUE # true,True都可以 - FALSE # false,False都可以 float: - 3.14 - 6.8523015e+5 # 可以使用科学计数法 int: - 123 - 0b1010_0111_0100_1010_1110 # 二进制表示 null: nodeName: ‘node‘ parent: ~ # 使用~表示null string: - 哈哈 - ‘Hello world‘ # 可以使用双引号或者单引号包裹特殊字符 - newline newline2 # 字符串可以拆成多行,每一行会被转化成一个空格 date: - 2018-02-17 # 日期必须使用ISO 8601格式,即yyyy-MM-dd datetime: - 2018-02-17T15:02:31+08:00 # 时间使用ISO 8601格式,时间和日期之间使用T连接,最后使用+代表时区
简单使用举例
YAML
Java
复杂一点点的举例
YAML
Java
测试运行结果
上面的例子中,在Person对象的emailAddress属性中,就已经使用了校验注解:@Email
下面给出常用的 JSR303注解
空检查
@Null 验证对象是否为null
@NotNull 验证对象是否不为null, 无法查检长度为0的字符串
@NotBlank 检查约束字符串是不是Null还有被Trim的长度是否大于0,只对字符串,且会去掉前后空格.
@NotEmpty 检查约束元素是否为NULL或者是EMPTY.
Booelan检查
@AssertTrue 验证 Boolean 对象是否为 true
@AssertFalse 验证 Boolean 对象是否为 false
长度检查
@Size(min=, max=) 验证对象(Array,Collection,Map,String)长度是否在给定的范围之内
@Length(min=, max=) Validates that the annotated string is between min and max included.
日期检查
@Past 验证 Date 和 Calendar 对象是否在当前时间之前
@Future 验证 Date 和 Calendar 对象是否在当前时间之后
@Pattern 验证 String 对象是否符合正则表达式的规则
数值检查,建议使用在Stirng,Integer类型,不建议使用在int类型上,因为表单值为“”时无法转换为int,但可以转换为Stirng为"",Integer为null
@Min 验证 Number 和 String 对象是否大等于指定的值
@Max 验证 Number 和 String 对象是否小等于指定的值
@DecimalMax 被标注的值必须不大于约束中指定的最大值. 这个约束的参数是一个通过BigDecimal定义的最大值的字符串表示.小数存在精度
@DecimalMin 被标注的值必须不小于约束中指定的最小值. 这个约束的参数是一个通过BigDecimal定义的最小值的字符串表示.小数存在精度
@Digits 验证 Number 和 String 的构成是否合法
@Digits(integer=,fraction=) 验证字符串是否是符合指定格式的数字,interger指定整数精度,fraction指定小数精度。
@Range(min=, max=) 检查数字是否介于min和max之间.
@Range(min=10000,max=50000,message="range.bean.wage")
private BigDecimal wage;
@Valid 递归的对关联对象进行校验, 如果关联对象是个集合或者数组,那么对其中的元素进行递归校验,如果是一个map,则对其中的值部分进行校验.(是否进行递归验证)
@CreditCardNumber信用卡验证
@Email 验证是否是邮件地址,如果为null,不进行验证,算通过验证。
@ScriptAssert(lang= ,script=, alias=)
@URL(protocol=,host=, port=,regexp=, flags=)
# 通过 active, 来选择具体的文档块,以达到配置环境的切换
spring:
profiles:
active: develop
# 文档块 1,开发环境
---
server:
port: 80
spring:
profiles: develop
# 文档块 2,测试环境
---
server:
port: 80
spring:
profiles: test
# 文档块 3,部署环境
---
server:
port: 80
spring:
profiles: deploy
原文:https://www.cnblogs.com/FalseGod13/p/SpringBoot_00.html