已解决自定义注解校验不生效问题

就是想试一下自定义的注解

一个简单的springboot工程

浏览器发请求后,http://localhost:9999/savePhone?phone=123

没有任何错误产生,校验实现的断点都没走

why????

 

自定义注解,校验电话号

@Documented
@Constraint(validatedBy = PhoneValidator.class)
@Retention(RetentionPolicy.RUNTIME)
@Target({METHOD, TYPE, ANNOTATION_TYPE, CONSTRUCTOR, FIELD, PARAMETER})
public @interface Phone {

String message() default "电话号格式错误";

Class<?>[] groups() default {};

Class<? extends Payload>[] payload() default {};

}

电话号校验实现,电话号必须有长度,必须是数字,长度为11位

@Component
public class PhoneValidator implements ConstraintValidator<Phone, String> {

@Override
public boolean isValid(String content, ConstraintValidatorContext constraintValidatorContext) {
return StringUtils.hasLength(content) && NumberUtil.isNumber(content) && content.length() == 11;
}
}

controller

@Validated
@RestController
public class ValidationController {

@GetMapping("/savePhone")
public R<String> savePhone(@RequestParam("phone") @Phone(message = "请检查电话号!") String phone) {

return R.success();
}
}

依赖

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>7.0.4.Final</version>
</dependency>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

请登录后发表评论