zoukankan      html  css  js  c++  java
  • 自定义校验注解

    ⒈编写校验逻辑类

     1 package cn.coreqi.security.validator;
     2 
     3 import javax.validation.ConstraintValidator;
     4 import javax.validation.ConstraintValidatorContext;
     5 
     6 /**
     7  * 第一个泛型是我们自定义验证注解的名称
     8  * 第二个泛型是验证字段的类型
     9  */
    10 public class MyConstraintValidator implements ConstraintValidator<MyConstraint,String> {
    11     /**
    12      * 初始化做的一些工作
    13      * @param constraintAnnotation
    14      */
    15     @Override
    16     public void initialize(MyConstraint constraintAnnotation) {
    17         System.out.println("My calidator init");
    18     }
    19 
    20     /**
    21      *  校验逻辑
    22      * @param s 传进来需要校验的值
    23      * @param constraintValidatorContext    校验上下文
    24      * @return
    25      */
    26     @Override
    27     public boolean isValid(String s, ConstraintValidatorContext constraintValidatorContext) {
    28         System.out.println(s);
    29         return true;
    30     }
    31 }

    ⒉自定义校验注解并使用校验逻辑类

     1 package cn.coreqi.security.validator;
     2 
     3 import javax.validation.Constraint;
     4 import javax.validation.Payload;
     5 import java.lang.annotation.ElementType;
     6 import java.lang.annotation.Retention;
     7 import java.lang.annotation.RetentionPolicy;
     8 import java.lang.annotation.Target;
     9 
    10 /**
    11  * 自定义一个验证注解
    12  * @author fanqi
    13  */
    14 @Target({ElementType.METHOD,ElementType.FIELD})   //@Target用于指定注解可以标注在那些元素上
    15 @Retention(RetentionPolicy.RUNTIME) //指定当前注解是运行时注解
    16 @Constraint(validatedBy = MyConstraintValidator.class) //指定当前注解是一个校验注解,并指定校验逻辑类
    17 public @interface MyConstraint {
    18 
    19     /**
    20      * 当校验未通过所传递的信息
    21      * @return
    22      */
    23     String message();
    24 
    25     Class<?>[] groups() default {};
    26 
    27     Class<? extends Payload>[] payload() default {};
    28 }

    ⒊使用(略)

  • 相关阅读:
    Laravel artisan 命令工具
    WIN10安装office2003/7失败 WIN10安装office2003权限不足解决
    64windows位安装tensorflow
    Swing图层的应用——实现tooltip显示
    spring加载xml的六种方式
    ubuntu 添加右键打开方式,无法添加程序打开方式
    3.3.4 配置Tomcat的<Context>元素 (转)
    百度tn劫持解决办法
    java代理模式
    js作用域
  • 原文地址:https://www.cnblogs.com/fanqisoft/p/10604467.html
Copyright © 2011-2022 走看看