Java自定义注解实现字段规则校验

1、前言

Java的注解现在非常的流行,注解不仅能让代码整洁美观,而且太多的功能只有注解方案。
在工作中常使用的Spring框架尤其常见,几乎可以说没有注解无法完整的使用Spring。

2、开始

那么如何自己写一个注解呢?
下面跟着我看一个简单的注解实现校验一个类中字段是否符合要求的例子。

2.1、定义一个注解类Check。

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
/**
 * 检查类中字段是否符合规则
 */ 
public @interface Check {
    int maxLen() default 20; // 字段最大长度,默认20个字符
}

2.2、在一个类User中使用注解。

/**
 * 用户信息类
 */ 
public class User {

    @Check(maxLen=10)
    /** 用户名,最大长度10个字符 */
    String name = "";

}

2.3、处理注解

在定义了注解、使用了注解后,最重要的步骤就是处理注解。在Test类中进行注解的处理。

/**
 * 测试类
 */ 
public class Test {
    public static void main(String[] args) {
        User user = new User();
        user.name = "123123";
        checkField(user);
        user.name = "123123123123";
        checkField(user); 
    }

    public static boolean checkField(Object obj) {
        Field[] fields = obj.getClass().getFields();
        for(Field field : fields) {
            Check check = field.getAnnotation(Check.class); 
            if(field.get(obj).toString().length() > check.maxLen()) {
                throw new Exception(field.getName() + "字段长度太长");
            } else {
                System.out.println(field.getName() + "字段长度通过验证"); 
            }
        }
    }
}

打印结果为:

name字段长度通过验证
name字段长度太长

3、总结

一般在项目中,自定义的注解有很多用途,例如上边举得例子就可以用于检查类变量的值是否符合要求,在实际应用中常这样使用:

  1. 在开发API接口的时候,在解析报文后,校验收到的请求报文字段是否符合接口规定。
  2. 在开发web工程时,配合Filter,校验页面输入项是否符合要求。
  3. 在注解类中,甚至可以使用正则表达式,能为校验字段提供更多的更灵活的方式方法。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值