自定义 Validat 校验注解
自定义 Validat 校验注解
目标:实现校验手机号字段
1 加依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId>
</dependency>
2 定义注解
package cn.lucky.common.annotation.validation;import cn.lucky.common.annotation.validation.ValidatorImpl.PhoneValidatorImpl;import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.*;@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
// 校验逻辑类
@Constraint(validatedBy = PhoneValidatorImpl.class)
/*** phone 校验注解* @author lucky
**/
public @interface IsPhone {String message() default "手机号不正确";Class<?>[] groups() default { };Class<? extends Payload>[] payload() default { };
}
3 添加校验逻辑实现类 PhoneValidatorImpl
package cn.lucky.common.annotation.validation.ValidatorImpl;import cn.hutool.core.util.PhoneUtil;
import cn.lucky.common.annotation.validation.IsPhone;import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;/*** @author lucky*/
public class PhoneValidatorImpl implements ConstraintValidator<IsPhone,String> {@Overridepublic boolean isValid(String phone, ConstraintValidatorContext constraintValidatorContext) {// 这里使用了hutool工具类,读者也可自信实现具体逻辑return PhoneUtil.isMobile(phone);}
}
4 使用
public class RegistryBO {/*** 用户名**/@IsPhoneprivate String username;/*** 密码**/private String password;}
/*** @author lucky*/
@RestController
@RequestMapping("/publisher/write")
public class Publisher {@Autowiredprivate PublisherService publisherService;/*** 注册发布者* @param registryBO registryBO* @return BaseResponse**/@PostMapping("/registry")public BaseResponse registry(@RequestBody @Valid RegistryBO registryBO) {boolean registry = publisherService.registry(registryBO);return registry ? BaseResponse.success() : BaseResponse.error();}}
自行测试即可。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
