为什么 Spring Cache 、Async AOP 实现都自己实现了 Advisor 、Advice 、Pointcut, 为什么不直接用 @Aspect 表达式,直接拦截注解,剩了很多代码,Advisor 、Pointcut 都不用写。 更简单的方式不用,为什么要这么复杂实现?
@Aspect
@Component
public class Aspect {
@Pointcut("@annotation(com.xxx.Cache)")
public void pointcut() {
}
@Around(value = "pointcut() && @annotation(cache)")
public Object imMonitorAround(ProceedingJoinPoint pjp, Cache cache) throws Throwable {
String methodKey = imMonitor.value();
return pjp.proceed();
}
}
1
ychost 2021-01-15 09:23:21 +08:00
Aspect 表达式必须强制要求启动的时候指定 Aspect 的 Processor 吧
|