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. 在註解類中,甚至可以使用正則表達式,能爲校驗字段提供更多的更靈活的方式方法。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章