spring 如何为扩展特定类的所有类指定单个切入点

ru9i0ody  于 2023-03-16  发布在  Spring
关注(0)|答案(1)|浏览(80)

我有多个来自不同包的类扩展了一个类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");
}

但是不管用有什么建议吗?

vsaztqbk

vsaztqbk1#

切入点应为:

within(com.mypackage.Super+)

其中com.mypackage.Super是完全限定的基类名,+表示“所有子类”。这对Spring AOP有效。在AspectJ中,这将匹配太多的连接点,而不仅仅是方法执行。下面是另一个对Spring AOP和AspectJ都有效的切入点:

execution(* com.mypackage.Super+.*(..))

相关问题