Spring 2.0 中的 AOP 配置選項

工程 | Ben Hale | 2006 年 8 月 3 日 | ...

有很多理由讓人喜歡在 Interface21 工作,但到目前為止,最棒的一點一定是能與業界領導者共事。例如,Spring 2.0 的主要重點之一是改進 AOP 支援。我們新增了一個 新的配置命名空間AspectJ 切入點語言,以及對 @AspectJ 方面 (aspect) 的支援。但這留下了一個大問題;在 Spring 2.0 中撰寫方面 (aspect) 的首選方式是什麼?由於我是 I21 的員工,我很幸運可以直接從權威人士那裡獲得答案。

我向 Interface21 的首席科學家兼 AspectJ 專案負責人 Adrian Colyer 提出了這個問題,以下是他的回覆。

我最初偏好 XML 語法,但最終還是選擇了 @AspectJ 陣營。當然,這兩種方法各有優缺點。XML 的優點是不使用註解,適用於所有 JDK 層級,並且可能讓現有的 Spring 使用者感到更熟悉。這些都是非常令人信服的理由。@AspectJ 的優點是它提供了更好的方面 (aspect) 單元感,支援比 XML 語法更多的功能,並且與 AspectJ 本身相容(完全相同的方面 (aspect) 可以同時用於 Spring 和 AspectJ)。

...

最終,我「如果可以,請使用 @AspectJ」的勝出理由是後兩者:- 更大的功能集以及更順暢的 AspectJ 採用路徑。

Adrian 關於將方面 (aspect) 視為切入點和通知單元的評論真的引起了我的共鳴。我認為 Spring 將它們視為可單獨配置的 bean,這是 Spring AOP 和 AspectJ 之間最大的差異之一。

我認為,展望未來,Spring 對 @AspectJ 形式的擁抱將成為用戶的堅實差異化因素。我認為,對於人們來說,知道 Spring 的 AOP 現在與市場上主要的 AOP 框架 AspectJ 如此緊密地結合在一起,這將是一種溫暖而模糊的感覺。他們會感到安全,因為即使不是所有語法都能轉換,但所有範例和概念都可以。見鬼,即使沒有 Spring,@AspectJ 也能運作,這很好。

我一開始就說能夠獲得這種輸入有多好,但我希望提醒您,您也可以。如果有人將此發布到 Spring 論壇,您也會得到相同的答案(甚至可能更快,因為有更多的目光關注我的電子郵件)。請記住,我們 Interface21 的所有人都致力於支援使用者和社群,因此請利用此資源。

取得 Spring 電子報

訂閱 Spring 電子報,隨時掌握最新資訊

訂閱

領先一步

VMware 提供培訓和認證,以加速您的進度。

瞭解更多

取得支援

Tanzu Spring 在一個簡單的訂閱中提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位檔案。

瞭解更多

即將到來的活動

查看 Spring 社群中所有即將到來的活動。

檢視全部