Comparing CDI and AspectJ



我们正在尝试评估项目中的CDI和AspectJ。这里有人做过类似的事情吗?有人能分享一下他们对使用CDI或AspectJ的看法吗1. 学习曲线2. 不同服务器的可移植性3.可维护性4. 调试

谢谢

这些实际上是非常不同的技术。CDI是一个依赖注入堆栈(类似于Spring或Guice),具有一些AOP特性(在典型用例中已经足够了)。AspectJ是一种成熟的面向方面编程语言,它并不真正提供任何依赖注入特性。

。1。学习曲线

两种技术都有很多材料。CDI是一个新项目,但围绕它有很多议论。例如,参见CDI AOP教程:Java标准方法拦截教程。

AspectJ要老得多,而且很少有关于它的好书。但我想说的是,它的要求有点高。

。2。可移植性到不同的服务器

CDI是DI的Java标准。我们将看到越来越多的服务器实现它。AspectJ是一种在字节码级别上工作的语言。它应该可以在几乎任何JVM上工作(移动、桌面、服务器、applet…)

至于可维护性和调试——这是完全不同的技术,所以我不会在这里深入比较它们。然而,CDI是标准的Java代码,而AspectJ主要是字节码级别的代码生成。另一方面,AspectJ生成的代码(堆栈跟踪、反编译)可能比大量反射代理和CGLIB使用CDI生成的类更具可读性。

最新更新