【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
一、什么是Bean Validation 2.0。
JSR是Java Specification Requests的缩写,意思是Java 规范提案。是指向java管理组织,JCP(Java Community Process)标准组织提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR,以向Java平台增添新的API和服务。JSR已成为Java界的一个重要标准。
- Bean Validation 2.0 是JSR第380号标准。标准连接如下:https://www.jcp.org/en/egc/view?id=380
二、 Bean Validation 的链接:
也就是说JSR提出了一个标准JSR #380 Bean Validation 2.0。然后hibernate-validator实现了这个标准。(类似于JDBC,然后其他厂商实现JDBC)
- Bean Validation的主页:http://beanvalidation.org
- Bean Validation的 API,标准、TCK(技术兼容包)资源:https://github.com/beanvalidation
- Bean Validation的参考实现:https://github.com/hibernate/hibernate-validator
- Bean Validation的参考实现的主页:http://hibernate.org/validator
三、Bean Validation 的用法。
1、在springboot中,直接在java属性上面使用Bean Validation的注解。如下:
public class CustomerUpdateVO{
@Size(max = 32)
private String name;
@Size(max = 255)
private String coverImg;
//省略getter、setter。
}
- @Size(max = 255) 表示这个属性的最大长度是255。超过就会校验错误。
2、然后controller中直接使用:
@PutMapping("/{id}")
public update(@PathVariable String id, @Valid @RequestBody CustomerUpdateVO updateVO) {
//其他代码
}
四、Bean Validation 2.0 都有哪些注解。
- 其他的注解可以查看Bean Validation 2.0的标准文档: https://beanvalidation.org/2.0/spec/
- 也可以查看API文档:https://docs.jboss.org/hibernate/beanvalidation/spec/2.0/api/
- 通过查看API文档,可以看到Bean Validation 2.0有下面这些内置的检验规则。具体使用后面补充。
- AssertFalse
- AssertFalse.List
- AssertTrue
- AssertTrue.List
- DecimalMax
- DecimalMax.List
- DecimalMin
- DecimalMin.List
- Digits 带注释的元素必须是可接受范围内的数字。支持的类型是:
BigDecimal、BigInteger、字符串,(byte, short, int, long 和他们的包装类)。null元素被认为是有效的。
例如:@Digits(integer = 6, fraction = 2)
integer表示: 此数字接受的最大整数位数。这里是6;fraction 表示:此数字接受的最大小数位数,这里是2 - Digits.List
- Email.List
- Future
- Future.List
- FutureOrPresent
- FutureOrPresent.List
- Max
- Max.List
- Min
- Min.List
- Negative
- Negative.List
- NegativeOrZero
- NegativeOrZero.List
- NotBlank 带注释的元素不能是null,必须包含至少一个非空字符。
支持的类型string(字符串至少一个非空字符)。 - NotBlank.List
- NotEmpty 带注释的元素不能null或空。
支持的类型:string(字符串长度),Collection(集合大小), Map(map的大小), Array(数组的长度) - NotEmpty.List
- NotNull
- NotNull.List
- Null
- Null.List
- Past
- Past.List
- PastOrPresent
- PastOrPresent.List
- Pattern
- Pattern.List
- Positive 带注释的元素必须严格正数(即0被认为是一个无效的值)。null元素被认为是有效的。
支持的类型:BigDecimal、BigInteger、(byte, short, int, long, float, double 和他们的包装类) - Positive.List
- PositiveOrZero 带注释的元素必须是正数或0。null元素被认为是有效的。
支持的类型:BigDecimal、BigInteger、(byte, short, int, long, float, double 和他们的包装类) - PositiveOrZero.List
- Size 带注释的元素大小必须在指定的边界之间(包括)。null元素被认为是有效的。
支持的类型:string(字符串长度),Collection(集合大小), Map(map的大小), Array(数组的长度) - Size.List
来源:oschina
链接:https://my.oschina.net/u/2601303/blog/3045745