一.介紹:java
Annotation的中文名字叫註解,開始與JDK 1.5,爲了加強xml元數據和代碼的耦合性的產物。註解自己並無業務邏輯處理,僅僅是一個聲明,具體的處理須要交由使用這些註解的工具類或方法,原則上來講,註解應該是對代碼書寫的一個輔助,即註解是否存在均不能影響代碼的正常運行。如今java中使用註解的場景是愈來愈多,如orm框架,Ioc框架等,開發人員使用註解的方式能夠簡化對於元數據的維護和構建(xml配置數據),框架
Annotation實際上是代碼裏的特殊標記,這些標記能夠在編譯、類加載、運行時被讀取,並執行相應的處理。經過使用Annotation,程序開發人員能夠在不改變原有邏輯的狀況下,在源文件嵌入一些補充信息。代碼分析工具、開發工具和部署工具能夠經過這些補充信息進行驗證或者進行部署。ide
Annotation提供了一條爲程序元素設置元數據的方法,從某些方面來看,Annotation就像修飾符同樣被使用,可用於修飾包、類、構造器、方法、成員變量、參數、局部變量的聲明,這些信息被存儲在Annotation的「name=value」對中。函數
Annotation能被用來爲程序元素(類、方法、成員變量等)設置元數據。值得指出的是:Annotation不能影響程序代碼的執行,不管增長、刪除Annotation,代碼都始終如一地執行。若是但願讓程序中的Annotation能在運行時起必定的做用,只有經過某種配套的工具對Annotation中的信息進行訪問的處理,訪問和處理Annotation的工具統稱APT(Annotation Processing Tool)。工具
二.分類:開發工具
標準 Annotationspa
包括 Override, Deprecated, SuppressWarnings,標準 Annotation 是指 Java 自帶的幾個 Annotation,上面三個分別表示重寫函數,不鼓勵使用(有更好方式、使用有風險或已不在維護),忽略某項 Warningorm
元 Annotation
@Retention, @Target, @Inherited, @Documented,元 Annotation 是指用來定義 Annotation 的 Annotation,在後面 Annotation 自定義部分會詳細介紹含義xml
自定義 Annotation
自定義 Annotation 表示本身根據須要定義的 Annotation,定義時須要用到上面的元 Annotation
這裏只是一種分類而已,也能夠根據做用域分爲源碼時、編譯時、運行時 Annotation,後面在自定義 Annotation 時會具體介紹接口
3、Named、RequstScoped、Model註解:
@RequestScoped:
在Web應用程序中的單個HTTP請求期間,請求範圍仍然存在。應用程序由單個請求和響應組成,bean使用請求範圍。
@Named:
該註解能夠用來處理單接口與多個實現類的注入。@Named註解做用於成員變量或者方法參數,能夠經過此標註的參數來區分不一樣的實現類。
@model:
@Model註解稱爲構造型,是用於封裝其餘註釋的註釋的術語。