2011-12-16 35 views
0

我們正在嘗試在我們的項目中評估CDI和AspectJ。這裏有人做過類似的事嗎?可以有人分享他們使用CDI還是AspectJ像 1.學習曲線一些主題 2.移植到不同的服務器 3.可維護性 4.調試運行比較CDI和AspectJ

感謝意見

回答

4

這些其實都是非常不同的技術。 CDI是一個依賴注入堆棧(像Spring或Guice),具有一些AOP特性(在典型用例中足夠了)。 AspectJ是一種全面的面向方面編程語言,它並不真正提供任何依賴注入功能。

.1。學習曲線

這兩種技術都有很多材料。 CDI是新的,但它有很多的嗡嗡聲。例如。見CDI AOP Tutorial: Java Standard Method Interception Tutorial

AspectJ年齡要大得多,並且很少有關於它的精彩書籍。但我會說這是一個更苛刻的要求。

.2。向不同服務器的便攜性

CDI是DI的Java標準。我們將看到越來越多的服務器實施它。 AspectJ是一種在字節碼級別上工作的語言。它應該適用於幾乎任何JVM(移動,臺式機,服務器,小應用程序......)

至於可維護性和調試 - 這些都是真正不同的技術,所以我不會在這裏比較它們。然而,CDI是一個標準的Java代碼,而AspectJ主要是字節碼級別的代碼生成。另一方面,AspectJ生成的代碼(堆棧跟蹤,反編譯)可能比大量的反射式代理和CGLIB生成的帶有CDI的類更具可讀性。

+0

感謝您的回覆。雖然有很多可用的材料,但個人而言,我認爲開發人員會更加習慣於學習CDI,因爲它主要涉及Annotation和使用XML的一些配置,在AOP wud中有點難以學習,因爲切入點的語法可能很難並且很難讀。所以學習曲線我認爲CDI勝過AOP – user667022 2011-12-16 09:57:28