四個元註解分別是:@Target,@Retention,@Documented,@Inherited ,再次強調下元註解是java API提供,是專門用來定義註解的註解,其做用分別以下。html
@Target : 表示該註解用於什麼地方,可能的值在枚舉類 ElemenetType 中,包括:
ElemenetType.CONSTRUCTOR 構造器聲明
ElemenetType.FIELD 域聲明(包括 enum 實例)
ElemenetType.LOCAL_VARIABLE 局部變量聲明
ElemenetType.METHOD 方法聲明
ElemenetType.PACKAGE 包聲明
ElemenetType.PARAMETER 參數聲明
ElemenetType.TYPE 類,接口(包括註解類型)或enum聲明java
@Retention : 表示在什麼級別保存該註解信息。可選的參數值在枚舉類型 RetentionPolicy 中,包括:
RetentionPolicy.SOURCE 註解將被編譯器丟棄
RetentionPolicy.CLASS 註解在class文件中可用,但會被VM丟棄
RetentionPolicy.RUNTIME VM將在運行期也保留註釋,所以能夠經過反射機制讀取註解的信息。工具
@Documented : 將此註解包含在 javadoc 中 ,它表明着此註解會被javadoc工具提取成文檔。在doc文檔中的內容會由於此註解的信息內容不一樣而不一樣。至關與@see,@param 等。spa
@Inherited : 在您定義註解後並使用於程序代碼上時,預設上父類別中的註解並不會被繼承至子類別中,您能夠在定義註解時加上java.lang.annotation.Inherited 限定的Annotation,這讓您定義的Annotation型別被繼承下來。注意註解繼承只針對class 級別註解有效(這段建議看徹底文後在來回顧)。.net
java中註解的使用與實例htm
http://www.cnblogs.com/pepcod/archive/2013/02/20/2918719.htmlblog
JavaEE開發之Spring中的條件註解、組合註解與元註解:繼承