如何使用 Spring AOP 建议静态方法?

Abh*_*hek 2 java spring spring-aop pointcut

在执行类的静态方法之前和之后需要完成一些日志记录。我尝试使用 Spring AOP 来实现这一点,但它不起作用,而对于正常方法来说它起作用。请帮助我理解如何实现这一点,如果可以使用注释来完成,那就太好了。

kri*_*aex 6

也许您应该在使用 Spring AOP 之前阅读文档。这句话对于任何工具都适用。如果你读过它,你会注意到Spring AOP是基于动态代理的,这意味着它只适用于

  • 非静态公共方法(如果您使用 CGLIB 而不是 JDK 代理,也可以是受保护的或包范围的方法)
  • 在春豆上。

该手册还指出,如果您需要更强大的 AOP 解决方案,您可以通过加载时编织 (LTW) 使用完整的 AspectJ 。在这种情况下,您还可以拦截静态方法以及 Spring AOP 用户梦寐以求的更多东西。