- Spring Boot進階:原理、實戰與面試題分析
- 鄭天民
- 616字
- 2022-07-05 09:41:47
3.1.1 Spring AOP核心概念
AOP只是一種設計理念,雖然概念不復雜,但實現過程不那么簡單。而Spring作為AOP的一款具體實現框架,也提供了自身的一些設計思想和編程組件。本小節將對Spring AOP中的核心概念展開討論,為下一小節的使用示例提供基礎。
為了理解AOP的具體實現過程,我們首先需要引入一組特定的術語,包括連接點(JoinPoint)、通知(Advice)、切點(PointCut)以及切面(Aspect)。
在AOP中,連接點表示應用執行過程中能夠插入切面的一個點。這種連接點可以是方法調用、異常處理、類初始化或對象實例化。
所謂通知,描述的是切面何時執行以及如何執行對應的業務邏輯。通知有很多種類型,比方說在方法執行之前、之后、前后及執行完成時進行通知,或者在方法執行異常時進行通知。
請注意,通知不一定應用于所有連接點,所以我們引入了切點的概念。切點是連接點的集合,用于定義必須執行的通知。因此切點為組件在應用程序中執行具體的通知提供了細粒度控制的方法。
最后,通知和切點組合在一起就構成了切面。切面用于定義應用程序中的業務邏輯及其執行的位置。
以上概念比較抽象,我們通過圖來使這些概念具象化,如圖3-3所示。

圖3-3 AOP核心概念示意圖
Spring框架對圖3-3中的概念都進行了實現,但也有自身的一些限制。例如,連接點只支持方法的調用。針對通知,Spring專門提供了一組注解,包括@Before、@After、@Around、@AfterReturning和@AfterThrowing等,分別對應方法執行的各個階段。切點的定義是和業務流程執行緊密相關的,所以在Spring中,可以通過使用各種靈活的表達式來定義切點。最后,Spring專門提供了一個@Aspect注解來定義切面。
推薦閱讀
- Building a Game with Unity and Blender
- GitLab Repository Management
- PostgreSQL Replication(Second Edition)
- SQL Server 2012數據庫管理與開發項目教程
- JavaCAPS基礎、應用與案例
- Bootstrap 4 Cookbook
- Python High Performance Programming
- 基于SpringBoot實現:Java分布式中間件開發入門與實戰
- OpenCV with Python By Example
- JBoss:Developer's Guide
- Software-Defined Networking with OpenFlow(Second Edition)
- 算法超簡單:趣味游戲帶你輕松入門與實踐
- Web前端測試與集成:Jasmine/Selenium/Protractor/Jenkins的最佳實踐
- HTML5 Canvas核心技術:圖形、動畫與游戲開發
- HTML5+CSS+JavaScript深入學習實錄