方法调用和方法执行-Spring AOP



我正在学习Spring AOP,我看到了这个表中Spring AOP和AspectJ之间的差异。

Joinpoint            Spring AOP Supported   AspectJ Supported
Method Call               No                  Yes
Method Execution          Yes                 Yes

方法调用和方法执行之间有什么区别?

有不同类型的连接点:

  • 方法调用
  • 方法执行
  • 对象创建
  • 构造函数执行
  • 字段引用

Spring AOP只支持公共方法调用,对于其他方法,您需要AspectJ。方法调用(方法调用(允许您在调用期间但在实际执行之前将其作为目标。因此,不能将连接点放在正在执行的方法的中间——只能在SpringAOP中的之前、之后或周围。

AspectJ允许更多的可能性,但也被视为更复杂,但由于编译时编织(Spring AOP是运行时(,它在性能方面更高效。因此,如果您需要更多的功能/更好的性能,那么使用AspectJ会更好,但这种情况很少发生,因为Spring AOP在大多数情况下已经足够了。

如果您想了解更多信息,这里有一个关于SpringAOP的概述。https://javamondays.com/spring-aop-beginners-guide/

最新更新