您的位置:首頁 > 軟件教程 > 教程 > 理解Spring AOP的XML配置

理解Spring AOP的XML配置

來源:好特整理 | 時間:2024-05-13 11:59:01 | 閱讀:110 |  標簽: 角度 Ri S in 配置   | 分享到:

本文是全面解析面向切面編程的實踐指南。通過深入講解切面、連接點、通知等關鍵概念,以及通過XML配置實現Spring AOP的步驟。

本文分享自華為云社區(qū)《Spring高手之路18——從XML配置角度理解Spring AOP》,作者: 磚業(yè)洋__。

Spring AOP使用動態(tài)代理作為其主要機制來實現面向切面的編程。這種機制允許Spring在運行時動態(tài)地創(chuàng)建代理對象,這些代理對象包裝了目標對象(即業(yè)務組件),以便在調用目標對象的方法前后插入額外的行為(如安全檢查、事務管理、日志記錄等)。

1. Spring AOP與動態(tài)代理

1.1 Spring AOP和動態(tài)代理的關系

Spring AOP 使用動態(tài)代理作為其主要機制來實現面向切面的編程。這種機制允許 Spring 在運行時動態(tài)地創(chuàng)建代理對象,這些代理對象包裝了目標對象(即業(yè)務組件),以便在調用目標對象的方法前后插入額外的行為(如安全檢查、事務管理、日志記錄等)。

  • JDK動態(tài)代理:當目標對象實現了一個或多個接口時, Spring AOP 默認使用 JDK 的動態(tài)代理。 JDK 動態(tài)代理通過反射機制,為接口創(chuàng)建一個代理對象,這個代理對象會攔截對目標接口方法的所有調用。

  • CGLIB代理:如果目標對象沒有實現任何接口, Spring AOP 會退回到使用 CGLIB 庫生成目標類的子類。 CGLIB Code Generation Library )是一個強大的高性能代碼生成庫,它在運行時擴展了 Java 類,并在子類中覆蓋了方法來實現方法攔截。

無論使用哪種代理方式,目的都是在不改變原有業(yè)務邏輯代碼的基礎上,通過切面定義的通知在方法執(zhí)行的不同階段插入附加行為。

1.2 AOP基本術語

切面(Aspect):切面是面向切面編程的核心,它是將橫跨多個類的關注點(如日志記錄、事務管理等)模塊化的構造。一個切面可以包含多種類型的通知( Advice )和一個或多個切點( Pointcut ),用于定義在何處以及何時執(zhí)行這些通知。

連接點(Join Point):連接點代表程序執(zhí)行過程中的某個特定位置, Spring AOP 限定這些位置為方法的調用。簡而言之,連接點就是能夠插入切面通知的點。

通知(Advice):通知定義了切面在連接點上要執(zhí)行的動作。根據通知類型的不同,這些動作可以在方法調用之前、之后、返回結果后或拋出異常時執(zhí)行。

  • 前置通知( Before advice ):在方法執(zhí)行之前執(zhí)行。
  • 后置通知( After advice ):在方法執(zhí)行后執(zhí)行,無論其結果如何。
  • 返回后通知( After-returning advice ):在方法成功執(zhí)行之后執(zhí)行。
  • 異常后通知( After-throwing advice ):在方法拋出異常后執(zhí)行。
  • 環(huán)繞通知( Around advice ):在方法執(zhí)行之前和之后執(zhí)行,提供對方法調用的全面控制。

切點(Pointcut):切點是一個表達式,切點表達式允許通過方法名稱、訪問修飾符等條件來匹配連接點,決定了通知應該在哪些方法執(zhí)行時觸發(fā)。

目標對象(Target Object):被一個或多個切面所通知的對象。也被稱為被代理對象。

AOP代理(AOP Proxy): AOP 框架創(chuàng)建的對象,用于實現切面契約(由通知和切點定義)。在 Spring AOP 中, AOP 代理可以是 JDK 動態(tài)代理或 CGLIB 代理。

引入(Introduction):引入允許向現有的類添加新的方法或屬性。這是通過定義一個或多個附加接口( Introduction interfaces )實現的, AOP 框架會為目標對象創(chuàng)建一個代理,該代理實現這些接口。

如果還是覺得抽象,我們再舉一個電影制作的例子來類比

切面(Aspect)

小編推薦閱讀

好特網發(fā)布此文僅為傳遞信息,不代表好特網認同期限觀點或證實其描述。

角度 1.3
角度 1.3
類型:休閑益智  運營狀態(tài):正式運營  語言:中文   

游戲攻略

游戲禮包

游戲視頻

游戲下載

游戲活動

《角度》(AngL)是一款簡潔風格的益智類游戲。游戲中,玩家將通過反射的方式來讓小球到達鉆石處,并途中
RPG Ri序章 0.2.1
RPG Ri序章 0.2.1
類型:角色扮演  運營狀態(tài):正式運營  語言: 日文  

游戲攻略

游戲禮包

游戲視頻

游戲下載

游戲活動

《RPG_Ri序章》是GameMaker'Child-Dream'制作的一款幻想廢土風RPG手游,完全免費的幻想廢土風RPG登場!元

相關視頻攻略

更多

掃二維碼進入好特網手機版本!

掃二維碼進入好特網微信公眾號!

本站所有軟件,都由網友上傳,如有侵犯你的版權,請發(fā)郵件[email protected]

湘ICP備2022002427號-10 湘公網安備:43070202000427號© 2013~2025 haote.com 好特網