2011-12-16 82 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