一尘不染

Spring AOP与AspectJ

java spring

我的印象是,Spring AOP最适合用于特定于应用程序的任务,例如安全性,日志记录,事务处理等,因为它使用自定义Java5注释作为框架。但是,AspectJ似乎是更友好的设计模式。

谁能强调在Spring应用程序中使用Spring AOP和AspectJ的利弊吗?


阅读 329

收藏
2020-03-20

共1个答案

一尘不染

Spring-AOP优点

  • 它比AspectJ更易于使用,因为你不必使用LTW(加载时编织)或AspectJ编译器。

  • 它使用代理模式和装饰器模式

Spring-AOP缺点

  • 这是基于代理的AOP,因此基本上你只能使用方法执行联接点。
  • 在同一类中调用另一个方法时,不应用方面。
  • 运行时可能会有一点开销。
  • Spring-AOP不能为Spring工厂未创建的任何内容添加方面

AspectJ专业人士

  • 这支持所有联接点。这意味着你可以做任何事情。
  • 与Spring AOP相比,运行时开销更少。

AspectJ缺点

  • 小心。检查你的方面是否仅编织到想要编织的方面。
  • 你需要使用AspectJ编译器进行额外的构建过程,或者必须设置LTW(加载时编织)
2020-03-20