Spring 2.0 中的 AOP 配置選擇

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

Interface21 工作有很多理由值得喜愛,但最棒的無疑是與行業領導者們一起工作。例如,Spring 2.0 的主要關注點之一是改進 AOP 支援。我們添加了新的配置名稱空間AspectJ 切入點語言以及對 @AspectJ 切面的支援。但這留下了一個大問題:在 Spring 2.0 中編寫切面的首選方式是什麼?由於我是 I21 的員工,我很幸運能直接從源頭獲得答案。

我將這個問題拋給了 Interface21 的首席科學家、AspectJ 專案的負責人 Adrian Colyer,他的回答如下。

我一開始更喜歡 XML 語法,但最終還是轉向了 @AspectJ 陣營。當然,這兩種方法都有其優缺點。XML 的優勢在於它不使用註解,適用於所有 JDK 版本,並且可能讓現有的 Spring 使用者感覺更熟悉。這些都是非常有說服力的理由。@AspectJ 的優勢在於它提供了更好的方面(aspect)作為獨立單元的感受,支援比 XML 語法更多的功能,並且與 AspectJ 本身相容(相同的方面既可以用於 Spring,也可以用於 AspectJ)。

...

最終,支援“如果可以,就使用 @AspectJ”的決定性論據是後兩者:更豐富的功能集和更順暢地遷移到 AspectJ 的路徑。

Adrian 關於將方面視為切入點(pointcuts)和通知(advices)的統一單元的評論,確實引起了我的共鳴。我認為 Spring 將它們視為可獨立配置的 bean,這是 Spring AOP 和 AspectJ 之間最大的區別之一。

我認為,未來 Spring 對 @AspectJ 形式的擁抱將成為使用者的一個堅實差異化優勢。我知道,當人們意識到 Spring 的 AOP 現在與市場上主要的 AOP 框架 AspectJ 如此緊密地對齊時,會感到非常欣慰。他們會感到安心,因為即使不是所有的語法都能遷移,但所有的正規化和概念都可以。甚至 @AspectJ 在沒有 Spring 的情況下也能工作,這也很不錯。

我在這個帖子的開頭說,能夠獲得這類輸入是多麼棒,但我希望提醒你們,你們也可以。如果有人將這個問題釋出到 Spring 論壇上,你們會得到同樣的答案(而且由於有更多人關注,也許會更快)。請記住,我們在 Interface21 的所有人都致力於支援使用者和社群,所以請充分利用這個資源。

獲取 Spring 新聞通訊

透過 Spring 新聞通訊保持聯絡

訂閱

領先一步

VMware 提供培訓和認證,助您加速進步。

瞭解更多

獲得支援

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位制檔案,只需一份簡單的訂閱。

瞭解更多

即將舉行的活動

檢視 Spring 社群所有即將舉行的活動。

檢視所有