Java 反射基礎概念

首先闡述幾個概念:

在org.aopalliance.intercept中存在下面一些概念:


接口種類

ConstructorInterceptor:攔截對象的構造器調用

ConstructorInvocation:構造器調用的描述,在調用者調用時給到攔截器。

FieldAccess:程序中屬性訪問描述。

FieldInterceptor:目標對象屬性訪問攔截器

Interceptor:攔截器

Inovcation:調用描述

Jointpoint:發生攔截的程序位置

MethodIntercetpor:方法攔截器

MethodInvocation:方法調用描述


MethodInovcation(interface):方法調用,在方法調用時會賦給攔截器使用。方法調用是一個連接點,可以被方法攔截器攔截。有一個方法getMethod(),即獲取調用的方法,以及繼承于Invocation中的getArguments和繼承自Jointpoint的getStaticPart、getThis和proceed等方法。getMethod方法是Jointpoint.getStaticPart()方法的類似實現(返回相同結果)。

Invocation(interface):表示程序中一次調用,invocation實質是Jointpoint并且能被攔截器攔截。內有getArguments方法,作用為獲取參數作為數組對象,可以更改此數組中的元素值以更改參數。

Joinpoint(interface):該接口表示一個普通的運行時連接點(在AOP技術中)。運行時連接點是在靜態連接點(例如,程序中某一位置)上發生的事件。例如,一次調用是方法的運行時連接點。而連接點可以通過getStaticPart()方法獲取。在攔截器攔截體系中,運行時攔截點是一個訪問對象(一個方法,一個構造器或者一個屬性等)的細化處理。它可被傳遞給安裝在靜態連接點上的攔截器中。[大致可以理解為靜態連接點就是代碼的具體位置,動態連接點就是攔截器存放的代碼位置]。

Interceptor(interface):通用攔截器可以攔截在基本程序中發生的運行時事件。這些事件由連接點實現。運行時連接點可以是調用,字段訪問,異常...。此接口不直接使用。可以使用子接口攔截特定事件。例如,以下類實現一些特定的攔截器以實現調試器:

可攔截方法調用、構造函數、以及屬性訪問攔截

Advice(interface):Advice的標簽接口,它的實現可以使任何類型,例如Interceptor。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,923評論 18 139
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,765評論 18 399
  • 1.內存泄露 內存泄漏兩種情況: 在堆中申請的空間沒有被釋放(虛擬機gc可以解決) 對象已不在使用,但仍然在內存中...
    Aimerwhy閱讀 618評論 0 0
  • 本博中關于spring的文章:Spring IOC和AOP原理,Spring事務原理探究,Spring配置文件屬性...
    Maggie編程去閱讀 4,120評論 0 34
  • 今天看到一組王者搞笑圖片,擊敗、雙殺、三殺、四殺、五殺、六殺、七殺、八殺、九殺、恭喜你完成自...
    夢覺夢覺閱讀 1,494評論 0 1