自定义注解了解一下

简介: 自定义注解了解一下

一 故事背景

乐乐最近的学习中发现别人有自己定义注解,乐乐觉得很炫,注解这东西属于一种切面,自己去实现一定是很酷的一件事,于是乐乐也自己动手写了一个邮件检验的自定义注解

二 实践

  1. 先写个邮件校验注解

     @Target(ElementType.FIELD)
     @Retention(RetentionPolicy.RUNTIME)
     public @interface EmailValidate {
         String message();
     }
    
    

  1. 写一个注解管理器

    public class EmailValidateHandle {

    public static <T> String validator(T t) throws IllegalArgumentException, IllegalAccessException{
        StringBuilder errorMessage = new StringBuilder();
        Class<? extends Object> cla = t.getClass();
        //利用反射获取类的所有字段包含私有属性
        Field[] fields = cla.getDeclaredFields();
        for(Field f:fields){
            //判断字段是否有定义NotNull注解
            EmailValidate emailValidateAnnotation = f.getAnnotation(EmailValidate.class);
            if(null != emailValidateAnnotation){
                //设置些属性是可以访问的
                f.setAccessible(true);
                //得到此属性的值
                Object val = f.get(t);
                boolean flag = checkEmail(val);
                if(!flag){
                    //获取注解上的异常信息
                    errorMessage.append(emailValidateAnnotation.message()).append(",");
                }
            }
        }
        return errorMessage.toString();
    }

    }

  2. 将注解放在要校验的属性上

    /**

    • 收件人

    */
    @EmailValidate(message = "收件人邮箱格式有误")
    private String recipients;
    /**

    • 抄送人

    */
    @EmailValidate(message = "抄送人邮箱格式有误")
    public String ccEmail;

  3. 在需要调用的地方调用

    String validator = EmailValidateHandle.validator(object);

5.自定义注解完成!

相关文章
|
9月前
|
Java 编译器 数据安全/隐私保护
自定义注解与AOP结合使用
自定义注解与AOP结合使用
78 0
|
10月前
|
Java
简单、快速教你自定义注解
简单、快速教你自定义注解
51 0
|
2月前
|
Java Spring
自定义注解+AOP
自定义注解+AOP
29 1
|
3月前
|
存储 缓存 Java
自定义注解
本文介绍了如何在Java中使用自定义注解。首先,通过示例展示了创建`User`类、`UserDAO`、`UserService`和`Controller`的基本流程。接着,定义了一个名为`CustomAnnotation`的自定义注解,用于方法上,并解释了`@Documented`、`@Retention`和`@Target`的作用。然后,通过AOP(面向切面编程)在Controller中使用自定义注解,展示了如何在方法执行前进行拦截处理。最后,提到了自定义注解可以用于登录检查的场景,通过定义`@Login`注解和过滤器来实现。总之,本文以一个简单的例子阐述了Java中自定义注解的创建和应用。
|
8月前
|
Java
springmvc之自定义注解-->自定义注解简介,基本案例和aop自定义注解
springmvc之自定义注解-->自定义注解简介,基本案例和aop自定义注解
43 0
|
8月前
自定义注解和AOP
自定义注解和AOP
36 0
|
XML Java 编译器
【学习总结】注解和元注解
【学习总结】注解和元注解
【学习总结】注解和元注解
|
XML 存储 Java
java注解-自定义注解的实现
java注解-自定义注解的实现
107 0
|
Oracle Java 关系型数据库
反射与自定义注解
反射与自定义注解
反射与自定义注解