2012-07-27 105 views
0

可能重复:
Spring AOP vs AspectJSpring AOP的VS Aspecj

我读春天的参考文件。在这写它

  1. 如果您需要字段访问和更新连接点,请考虑一种语言,如AspectJ。
  2. 有些东西你不能用Spring AOP来完成,比如建议很细粒度的对象(比如域对象),AspectJ是使用它的最好的例子。
  3. 什么是AspectJ编译器或编织器?

我没有得到上述三点的含义,因此感到困惑。请用简单的例子来说明。

回答

2

您的第一点只是简单地表明您只能在方法级别应用切点,而不能在spring-aop中实施场截获。

下一点告诉你不能添加域对象意见(这是简单的POJO实体),

最后是关于编织,编织是各个方面的接线进入方式与Spring的XML文件中的对象JavaBean的。或者简单地说,编织就是将新的字节码添加到Java类中,以使其可用于框架。

3

AFAIK Spring AOP不支持AspectJ的所有功能,但只支持有限集合。例如,Spring AOP只支持方法级别的切入点,因此如果您想要细粒度控制(即字段级别),则需要本地使用AspectJ。

0

还有更重要的区别 - AspectJ可以在编译时注入AOP东西(例如使用aspectj maven pluging),仅在运行时使用cglib或javasist根据spring的版本来注入AOP。不过,一般情况下,您宁愿选择弹簧AOP - 仅仅因为它更容易...