使用 validation 自定义注解

本贴最后更新于 1980 天前,其中的信息可能已经天翻地覆

第一步 在 pom 中引入

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> <version>2.1.6.RELEASE</version> </dependency>

第二步 创建一个普通的类将至变成注解

@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE }) @Retention(RUNTIME) @Documented @Constraint(validatedBy = {IsMobileValidator.class}) public @interface IsMobile { String message() default "手机号码格式错误"; Class<?>[] groups() default { }; Class<? extends Payload>[] payload() default { }; }

步骤就是讲 class 替换成 @interface.然后将其他的复制出来就行,message() default 需要自己写

第三步 创建另一个类继承 ConstraintValidator<> 接口

public class IsMobileValidator implements ConstraintValidator<IsMobile,String> { public static final String REGEX_MOBILE = "^((17[0-9])|(14[0-9])|(13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$"; @Override public void initialize(IsMobile constraintAnnotation) { } @Override public boolean isValid(String value, ConstraintValidatorContext context) { try { if(StringUtils.isEmpty(value)) { return false; } return Pattern.matches(REGEX_MOBILE,value); } catch (Exception e) { return false; } } }

在 isValid 下写判断逻辑

最后就可以使用 @isMobile

@IsMobile private String phone;
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    949 引用 • 1460 回帖 • 1 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...