Spring AOP 和 AspectJ 之间的差别

Spring AOP 和 AspectJ 之间的差别

  • 使用AOP的优势
  • 相同点与不同点
    • 相同点
    • 不同点
      • 1、应用场景不同
      • 2、选用原则

使用AOP的优势

1、对原有代码毫无入侵性,把和主业务无关的事情,放到代码外面去做。
2、精简代码。

相同点与不同点

相同点

二者都是当前流行的AOP框架。

不同点

1、应用场景不同

(1)Spring AOP的实现都是在运行时进行织入的,而且只能针对方法进行AOP,无法针对构造函数、字段进行AOP。AspectJ可以在编译成class时就织入,还提供了后编译器织入和类加载期织入。

2、选用原则

(1)Spring Bean 中的bean无final修饰符,或者相似的方法也没有标以static或final修饰符时,使用Spring AOP。
(2)Spring Bean 中的bean有final修饰符,或者相似的方法有以static或final修饰符时,使用AspectJ。
(3)在POJO上应用关注点,使用AspectJ。
(4)根据实际的开发场景,可能选择同时使用两种方法。

参考链接:https://www.oschina.net/translate/comparative_analysis_between_spring_aop_and_aspectj?cmp
https://www.zhihu.com/question/24863332/answer/350410712

你可能感兴趣的:(学习总结,spring)