hooyantsing's Blog

白银篇_P4_配置属性值数据绑定校验

字数统计: 511阅读时长: 2 min
2020/07/17

配置属性值数据绑定校验

20年全新-Spring Boot 2.x从青铜到王者之白银篇-打造精品中的精品-程序员-编程-架构师-SpringBoot

hibernate-validatorJSR 303 规范的实现。

依赖

1
2
3
4
5
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.2.4.Final</version>
</dependency>

@Validated

标志该类的域和域所引用的类里的域都要经过校验

Family.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package xyz.hooy.demo.silver.p3;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import org.springframework.validation.annotation.Validated;

@Data
@Component
@ConfigurationProperties(prefix = "family")
@Validated
public class Family {
private String familyName;
private Father father;
private Mother mother;
private Child child;
}

Father.java

1
2
3
4
5
6
7
8
9
10
11
12
package xyz.hooy.demo.silver.p3;

import lombok.Data;

import javax.validation.constraints.Min;

@Data
public class Father {
private String name;
@Min(15)
private Integer age;
}

校验注解

|@Null |限制只能为null |
|@NotNull |限制必须不为null |
|@AssertFalse |限制必须为false |
|@AssertTrue |限制必须为true |
|@DecimalMax(value) |限制必须为一个不大于指定值的数字 |
|@DecimalMin(value) |限制必须为一个不小于指定值的数字 |
|@Digits(integer,fraction)|限制必须为一个小数,且整数部分的位数不能超过integer,小数部分的位数不能超过fraction |
|@Future |限制必须是一个将来的日期 |
|@Max(value) |限制必须为一个不大于指定值的数字 |
|@Min(value) |限制必须为一个不小于指定值的数字 |
|@Past |限制必须是一个过去的日期 |
|@Pattern(value) |限制必须符合指定的正则表达式 |
|@Size(max,min) |限制字符串长度必须在min到max之间 |
|@NotEmpty |验证注解的元素值不为null且不为空(字符串长度不为0,集合大小不为0) |
|@NotBlank |验证注解的元素值不为空(不为null,去除首位空格后长度为0),不同于@NotEmpty,@NotBlank只应用于字符串且在比较时会去除字符串的空格|
|@Email |验证注解的元素值是Email,也可以通过正则表达式和flag指定定义的email格式。 |

CATALOG
  1. 1. 配置属性值数据绑定校验
    1. 1.0.1. 依赖
    2. 1.0.2. @Validated
    3. 1.0.3. 校验注解