本文主要是介绍开发经验总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、validation的使用
引入依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId></dependency>
采用注解校验
实体类的字段采用相关注解修饰,如@NotNull,@Null
@NotBlank private String name;
在controller使用@Valid修饰该实体类
分组校验
(1)定义一个标识接口
public interface Add {}
(2)在校验注解指定分组
@Null(groups = Add.class)
(3)使用Validated修饰实体类
@Validated(Add.class)
注意:当使用分组校验时,修饰字段的注解都要加分组,否则其他字段校验不生效,它只会在Validated修饰
自定义校验注解
(1)编写一个自定义注解
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER, ElementType.TYPE_USE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Constraint(validatedBy = {ShowConstraintValidator.class}//可以指定多个校验器 ) public @interface Show {//默认消息提示,需要在resources目录下新增ValidationMessages.properties配置String message() default "{com.mall.common.valid.Show.message}";Class<?>[] groups() default {};Class<? extends Payload>[] payload() default {};int[] vals() default {};}
(2)在自定义一个校验器
public class ShowConstraintValidator implements ConstraintValidator<Show,Integer> {@Overridepublic void initialize(Show constraintAnnotation) {//初始化参数}@Overridepublic boolean isValid(Integer integer, ConstraintValidatorContext constraintValidatorContext) {//todo 校验逻辑判断return true;} }
(3)在resources目录增加一个配置文件ValidationMessages.properties
com.mall.common.valid.Show.message=test
这篇关于开发经验总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!