即使显示了正确的建议方法,AspectJ注释也无法在IDEA中使用

时间:2018-10-16 14:30:00

标签: java spring aop aspectj

我正在尝试在旧的Java / JSP Web应用程序中进行一些日志记录,并且我决定最好使用AOP来实现这一目的。我陷入了一个问题,我的新LoggingAspect类中的所有内容看起来都很好,但是没有调用通知方法。

为了使这个问题更令人困惑,在同一包中使用相同方法使用其他一些较旧的使用AspectJ的类执行其他操作的效果很好,当我尝试将其切入点复制到我的类时,它们在那里工作也是

让我感到沮丧的另一件事是IntelliJ IDEA的“导航到建议方法”功能,用于列出当前切入点建议的方法,当我更改切入点时,它总是正确列出建议的方法,但建议建议的方法调用时,方法仍然不会被调用。

为什么会这样?为什么IDE会正确评估建议的方法,但在运行时未调用它们?我该如何工作?

@Component
@Aspect
public class LoggingAspect {

    private Logger logger = LoggerFactory.getLogger(getClass());

//  This works fine
//  @Around("execution(* cz.company.mbs.json.services..*.*(..))")
//  This doesn't for some reason, but I need it
    @Around("execution(* cz.company.mbs.pda.controller..*.*(..)))")
    public Object logAllRequestMapped(ProceedingJoinPoint joinPoint) throws Throwable {
        logger.info("XXXTEST");
        logger.info(joinPoint.getSignature() + " started");
        Object proceed = joinPoint.proceed();
        logger.info(joinPoint.getSignature() + " finished");
        return proceed;
    }

}

0 个答案:

没有答案