自定义 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();}}

自行测试即可。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部