雨筍教育:快速成為滲透工程師有什麼祕訣?
- 當使用自定義註解時,首先建立一個註解的實體,類似於
@interface表示這是一個註解類,類上面包含@Target和@Retention註解,其中
@Target:註解的作用目標
@Target(ElementType.TYPE)——介面、類、列舉、註解
@Target(ElementType.FIELD)——欄位、列舉的常量
@Target(ElementType.METHOD)——方法
@Target(ElementType.PARAMETER)——方法引數
@Target(ElementType.CONSTRUCTOR) ——建構函式
@Target(ElementType.LOCAL_VARIABLE)——區域性變數
@Target(ElementType.ANNOTATION_TYPE)——註解
@Target(ElementType.PACKAGE)——包
@Retention:註解的保留位置
RetentionPolicy.SOURCE:這種型別的Annotations只在原始碼級別保留,編譯時就會被忽略,在class位元組碼檔案中不包含。
RetentionPolicy.CLASS:這種型別的Annotations編譯時被保留,預設的保留策略,在class檔案中存在,但JVM將會忽略,執行時無法獲得。
RetentionPolicy.RUNTIME:這種型別的Annotations將被JVM保留,所以他們能在執行時被JVM或其他使用反射機制的程式碼所讀取和使用。
2.當需要指定註解的屬性值時,可以考慮再註解實體中使用列舉類,對應屬性的取值,將從列舉類中獲取。如下:
3.參照@ComponentScans註解定義註解集合
註解集合要求屬性類也必須是一個註解。
註解集合的使用為:
@ComponentScans(value =@ComponentScan(註解中的具體屬性指向))