Spring AOP vs Aspectj

时间:2012-07-27 09:50:12

标签: java spring aop aspectj spring-aop

  

可能重复:
  Spring AOP vs AspectJ

我正在阅读春季参考文件。因为它是写的

  1. 如果您需要字段访问和更新连接点,请考虑使用AspectJ等语言。
  2. 有些东西是你无法用Spring AOP做的,比如建议非常细粒度的对象(比如域对象),AspectJ是使用它的最佳案例。
  3. 什么是AspectJ编译器或weaver?
  4. 我没有得到上述三点的含义而因此感到困惑。请用简单的例子详细说明。

3 个答案:

答案 0 :(得分:3)

AFAIK Spring AOP不支持AspectJ的所有功能,但仅支持有限的设置。 例如,Spring AOP仅支持方法级切入点,因此如果您需要精细控制(即字段级别),则需要本机使用AspectJ。

答案 1 :(得分:2)

你的第一点只是传达你只能在方法级别上应用切入点,在spring-aop中没有实现字段拦截。

下一点告诉你不能在域对象(简单的pojo实体)上添加建议,

最后一个是关于编织,编织是将Aspects连接到Spring XML文件中的对象,就像JavaBean一样。或者简单地说,编织是为了向你的java类添加新的字节码以使其可用于框架。

答案 2 :(得分:0)

还有更重要的区别 - AspectJ可以在编译时注入AOP东西(例如使用aspectj maven pluging),只在运行时根据spring的版本使用cglib或javasist弹出AOP。但是一般来说你更喜欢弹簧AOP - 只是因为它更容易......