900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > spring boot-@Validated参数校验-自定义注解(不为空才进行正则校验)

spring boot-@Validated参数校验-自定义注解(不为空才进行正则校验)

时间:2022-06-23 20:10:18

相关推荐

spring boot-@Validated参数校验-自定义注解(不为空才进行正则校验)

通过自定义注解,满足不为空才进行正则校验的需求

/*** @author LGQ* @Title: 自定义注解整合jsr* @Description: 不为空进行规则校验* @date /9/30 10:32*/@Target({METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE})@Retention(RetentionPolicy.RUNTIME)@Constraint(validatedBy = NotBlankThenPattern.NotBlankThenPatternValidation.class)@Documentedpublic @interface NotBlankThenPattern {String regexp() default "";String message() default "格式错误";/*** @return the groups the constraint belongs to*/Class<?>[] groups() default {};/*** @return the payload associated to the constraint*/Class<? extends Payload>[] payload() default {};class NotBlankThenPatternValidation implements ConstraintValidator<NotBlankThenPattern, String> {private Pattern pattern;@Overridepublic void initialize(NotBlankThenPattern constraintAnnotation) {this.pattern = pile(constraintAnnotation.regexp());}@Overridepublic boolean isValid(String value, ConstraintValidatorContext context) {if (StringUtil.isBlank(value)) {return true;}return pattern.matcher(value).matches();}}}

@RestControllerAdvice@Slf4jpublic class CommonExceptionHandler {@ExceptionHandler({MethodArgumentNotValidException.class})public Result handleMethodArgumentNotValidException(MethodArgumentNotValidException ex) {BindingResult bindingResult = ex.getBindingResult();StringBuilder sb = new StringBuilder("");if (null != bindingResult.getFieldErrors()) {for (FieldError fieldError : bindingResult.getFieldErrors()) {sb.append(fieldError.getDefaultMessage() + "\n");}return Result.ofFail(-1, sb.toString());}return Result.ofSuccessMsg(null);}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。