1. 程式人生 > >Java註解知識附帶實戰原始碼

Java註解知識附帶實戰原始碼

java註解總結

Annotation是Java提供的一種元程式中的元素關聯任何資訊和元資料(metadata)的途徑和方法。 Annotation(註解)是一個介面,程式可以在編譯期通過AbstractProcessor處理註解元素, 或者執行期通過反射來獲取指定程式元素的Annotation物件,然後通過Annotation物件來獲取其中的元資料

首先了解元註解

元註解即為註解的註解,用來定義新的註解使用,如下: * @Target ; 該註解用來宣告註解作用的範圍或使用位置 * CONSTRUCTOR:用於描述構造器 * FIELD:用於描述域 * LOCAL_VARIABLE:用於描述區域性變數 * METHOD:用於描述方法 * PACKAGE:用於描述包 * PARAMETER:用於描述引數 * TYPE:用於描述類、介面(包括註解型別) 或enum宣告 * @Retention ;該註解聲明瞭註解的宣告週期,在什麼時期存在 * SOURCE:在原始檔中有效 * CLASS:在class檔案中有效 * RUNTIME:在執行時有效(即執行時保留) * @Documented ;是一個標記註解,有該註解的註解會在java文件中保留 * @Inherited 該註解表明子類是有繼承了父類的註解。比如一個註解被該元註解修飾,並且該註解的作用在父類上, 那麼子類有持有該註解。如果註解沒有被該元註解修飾,則子類不持有父類的註解。

自定義註解實戰:詳見myannotation包下邊的類實現

使用元註解定義了註解的作用於,作用時期,引數型別等以後,一般是通過java反射機制 來首先判斷當前類是否有@MyAnnotation,有則進行相應的邏輯處理,包括執行特定動作 獲取註解引數等行為。 還可以獲取在該類下添加了@MYAnnotation註解所有方法,對獲取到 的所有方法進行邏輯操作。

案例實戰(模仿ORM框架實現生成sql語句)

  1. 自定義@Table @Column 註解
  2. 定義一個實體類User,新增一些欄位,並使用自定義註解
  3. new User的物件,新增一些欄位
  4. 通過反射和註解來實現sql語句的生成

詳細實現請檢視 GitHub程式碼地址 該專案myannotation包下的相關程式碼