Springboot常用註解之@Target,@Documented和@Retention

1. @Target

   Target設定註解使用範圍,通過ElementType來指定註解可使用範圍的枚舉集合 。

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Target {

   ElementType.ANNOTATION_TYPE表示註解在被@interface修飾的類型,否則報錯。

   同理,常用的ElementType.METHOD表示註解在方法上,否則報錯。

   ElementType用法

取值 註解使用範圍
TYPE 類,接口上或者枚舉申明
FIELD 字段申明和枚舉常量
METHOD 方法
PARAMETER 參數
CONSTRUCTOR 構造方法
LOCAL_VARIABLE 局部變量
ANNOTATION_TYPE 註解類型上(被@interface修飾的類型)
PACKAGE 安裝包申明
TYPE_PARAMETER 類型參數申明
TYPE_USE 使用一種類型

 

2.@Documented

   Documented註解表明這個註釋是由 javadoc記錄的。 如果一個類型聲明被註釋了文檔化,它的註釋成爲公共API的一部分。

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Documented {

3.@Retention

   @Retention與RetentionPolicy這個枚舉類型的常量一起指定註釋要保留多長時間

   RetentionPolicy描述保留註釋的各種策略

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Retention {

   RetentionPolicy用法:

取值 解釋
SOURCE 編譯器丟棄註釋
CLASS 編譯器會記錄在文件中,默認運行時不需要虛擬機保留
RUNTIME 編譯器記錄在文件中,由虛擬機運行時保留,便於讀取。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章