作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有多个来自不同包的类扩展了一个类 Super。我想创建一个 AOP 切入点,它匹配所有扩展 Super 的类中的所有方法。我试过这个:
@Around("within(com.mypackage.that.contains.super..*)")
public void aroundAllEndPoints(ProceedingJoinPoint joinPoint) throws Throwable {
LOGGER.info("before Proceed ");
joinPoint.proceed();
LOGGER.info("after Proceed");
}
但它不起作用。有什么建议吗?
最佳答案
切入点应该是:
within(com.mypackage.Super+)
其中 com.mypackage.Super
是完全限定的基类名称,+
表示“所有子类”。这适用于 Spring AOP。在 AspectJ 中,这会匹配太多的连接点,而不仅仅是方法执行。这是另一个适用于 Spring AOP 和 AspectJ 的切入点:
execution(* com.mypackage.Super+.*(..))
关于java - 如何为扩展特定类的所有类指定单个切入点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38507316/
我是一名优秀的程序员,十分优秀!