调用此AspectJ @Around
函数时:
@Around("controllers() && methodsPointcut()")
public Object returnControlerLog(ProceedingJoinPoint joinPoint) throws Throwable {
Object value = joinPoint.proceed();
this.log(LogTypes.CONTROLLER, value, joinPoint.getTarget().getClass(), "CONTROLLER RETURN",
joinPoint.getSignature().getName());
return value;
}
我得到了
java.lang.IllegalAccessError: tried to access class my.aspect.package.LogAspect$LogTypes from class my.controller.package.MyController
在切入点指向的Spring函数控制器内部:
@RequestMapping(method = RequestMethod.PUT, value = "/doSth")
public @ResponseBody JSONObject doSth(@RequestParam String sth) {
return new JSONObject().put("key", sth);
}
我刚刚根据我的需要调整了example。
我有其他切入点@Before
或@AfterThrowing
效果很好。
答案 0 :(得分:0)
您没有展示代码中最重要的部分。我看到的不是包名,没有类声明,没有方面声明,只是片段。下次请提供一个MCVE,以防止人们做我现在要做的事情:猜测而不是复制并提供可靠的答案。
所以我有根据的猜测是你没有公开你的方面。请做,快乐。