Spring 的面向切面程式設計

面向切面程式設計 (AOP) 透過提供另一種思考程式結構的方式來補充物件導向程式設計 (OOP)。OOP 中的主要模組化單元是類別,而在 AOP 中,模組化單元是切面。切面能夠模組化跨多種類型和物件的關注點(例如交易管理)。(在 AOP 文獻中,此類關注點通常稱為「橫切關注點」。)

Spring 的主要元件之一是 AOP Framework。雖然 Spring IoC 容器不依賴 AOP(表示如果您不想使用 AOP,則不需要使用它),但 AOP 補充了 Spring IoC,以提供非常強大的中介軟體解決方案。

具有 AspectJ 切入點的 Spring AOP

Spring 提供了簡單而強大的方法來編寫自訂切面,方法是使用基於 Schema 的方法@AspectJ 註解樣式。這兩種樣式都提供完全型別的建議,並使用 AspectJ 切入點語言,同時仍使用 Spring AOP 進行織入。

本章討論基於 Schema 和 @AspectJ 的 AOP 支援。較低階的 AOP 支援在以下章節中討論。

AOP 在 Spring Framework 中用於

  • 提供宣告式企業服務。最重要的此類服務是宣告式交易管理

  • 讓使用者實作自訂切面,以 AOP 補充其 OOP 的使用。

如果您只對通用宣告式服務或其他預先封裝的宣告式中介軟體服務(例如共用集區)感興趣,則無需直接使用 Spring AOP,並且可以跳過本章的大部分內容。