'javax.validation:validation-api常用注解'
一、概述
在我们应用程序的业务逻辑中,经常会碰到参数校验的情况,手动的在代码层上面进行校验就会带来很不好的体验,阅读、维护的成本会大大增加,造成冗余。因此有了这个JSR 303。
Bean Validation为JavaBean提供了相应的API来给我们做参数的验证。通过Bean Validation比如@NotNull @Pattern等方法来对我们字段的值做进一步的教研。
Bean Validation 是一个运行时框架,在验证之后错误信息会直接返回。
完整的jar包:
javax.validation:validation-api:2.0.1.Final.jar 包
注意:SpringBoot2 项目web组件已经内置了这个依赖了
1 | <!--添加依赖--> |
二、常用验证注解
@NotEmpty
不能为null,而且长度必须大于0(一般注解在集合属性上)
@NotBlank
@NotBlank只用于String,不能为null且trim()之后size>0
@NotNull
不能为null,但可以为empty;用在基本类型上
例子:
1 | import lombok.Data; |
三、@Valid和@Validated的区分
1、@Valid
@Valid注解用于校验,所属包为:javax.validation.Valid。
①、首先需要在实体类的相应字段上添加用于充当校验条件的注解,如:@Min,如下代码(age属于Girl类中的属性):如上图
②、其次在controller层的方法的要校验的参数上添加@Valid注解,并且需要传入BindingResult对象,用于获取校验失败情况下的反馈信息,如下代码:
1 |
|
bindingResult.getFieldError.getDefaultMessage()用于获取相应字段上添加的message中的内容
2、@Validated
@Valid是javax.validation里的。
@Validated是@Valid 的一次封装,是Spring提供的校验机制使用,所属包: org.springframework.validation.annotation.Validated。
四、使用例子
未完待续…