Spring AOP 如何定义 final 方法的切点?
🏷️ Spring
声明了一个切点:
java
@Pointcut("execution(public * com.xxx.api.controller.*.*.*(..))")
但是对应的 controller 中部分方法为 public final
的。这部分方法无法进入切点。
这个是 java 中 final
的机制造成的吗? 还是切点的表达式不对?
2023-02-21 追记
今天偶然看到这篇之前的博客,现在看来,这个应该是由于 Spring 的两种代理类型不支持这些切点导致的:
JDK Proxy:这种代理是基于 Java 接口的,而 controller 一般都不定义对应的接口类;
CGLIB Porxy:这种代理不支持
final
类和方法;