首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java 註解全解析:定義、使用、優缺點與元註解繼承特性

     編輯:Java 綜合教學

註解是什麼?怎麼用?為什麼用?

註解的本質

註解 可視為類/方法的擴展模板:按規則為目標標註參數,運行時通過反射獲取配置信息。

自定義註解三步驟

  1. 定義註解類型:@interface MyAnnotation { String value(); int count() default 0; }
    元註解說明:
    @Target(ElementType.TYPE) 作用目標 (類/方法/字段等)
    @Retention(RetentionPolicy.RUNTIME) 保留至運行期
    @Documented 納入 Javadoc
    @Inherited 允許子類繼承
  2. 定義枚舉 (可選):限制參數取值範圍。
  3. 使用註解:@MyAnnotation(value="test", count=1) public class Demo {},反射獲取:clazz.getAnnotation(MyAnnotation.class)。

註解定義

枚舉定義

註解使用

方法級註解只需將 @Target 改為 ElementType.METHOD。

註解 vs XML 配置

維度XML 配置註解
OCP 原則✅ 修改配置無需改代碼❌ 擴展需改代碼
集中管理✅ 關系清晰❌ 分散在各類上
開發速度❌ 較慢✅ 快
編譯期檢查❌ 難發現錯誤✅ 易定位

特殊特性:元註解「繼承」

若自定義註解 @MyComp 本身標註了 Spring 的 @Component,則使用 @MyComp 時無需再加 @Component,Spring 會遞歸識別。

@Component // 元註解
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyComp {}

@MyComp // 等效於 @Component + @MyComp
public class MyService {}

原始雙註解

元註解定義

簡化使用

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved