【问题标题】:Spring AOP vs Aspecj [duplicate]Spring AOP vs Aspectj [重复]
【发布时间】:2012-07-25 23:44:31
【问题描述】:

可能重复:
Spring AOP vs AspectJ

我正在阅读 spring 参考文档。就是这么写的

  1. 如果您需要字段访问和更新连接点,请考虑使用 AspectJ 等语言。
  2. 有些事情你不能用 Spring AOP 做,例如建议非常细粒度的对象(例如域对象),AspectJ 是使用它的最佳案例。
  3. 什么是 AspectJ 编译器或编织器?

我没有理解以上三点的含义,因此感到困惑。请用简单的例子详细说明。

【问题讨论】:

    标签: java spring aop aspectj spring-aop


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      最后是关于织入,织入是将Aspects以JavaBean的方式连接到spring XML文件中的对象中。或者简单地说,编织就是将新的字节码添加到您的 java 类中以使其可用于框架。

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-12-17
          • 1970-01-01
          • 2010-12-09
          • 2012-03-11
          • 2012-03-28
          • 2015-01-20
          相关资源
          最近更新 更多