SpringBoot項目中自定義注解的使用


1.定義注解接口

  1. @Documented

  2. @Retention(RUNTIME)

  3. @Target(METHOD)

  4. public @interface MyLog {

  5.    String value() default "日志注解";

  6. }

@Documented 注解: Documented 注解表明這個注解應該被 javadoc工具記錄. 默認情況下,javadoc是不包括注解的.

但如果聲明注解時指定了 @Documented,則它會被 javadoc 之類的工具處理, 所以注解類型信息也會被包括在生成的文檔中

@Inherited 注解: 它指明被注解的類會自動繼承. 更具體地說,如果定義注解時使用了 @Inherited 標記

然后用定義的注解來標注另一個父類, 父類又有一個子類(subclass),則父類的所有屬性將被繼承到它的子類中

  • @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) ///包

  • 1.RetentionPolicy.SOURCE——這種類型的Annotations只在源代碼級別保留,編譯時就會被忽略

    2.RetentionPolicy.CLASS——這種類型的Annotations編譯時被保留,在class文件中存在,但JVM將會忽略

  • 3.RetentionPolicy.RUNTIME——這種類型的Annotations將被JVM保留,所以他們能在運行時被JVM或其他使用反射機制的代碼所讀取和使用.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM