最近在测试接口时,总是调用两次,于是在aop找原因
错误原因:在aop的@Around这个接口中出现了两次ProceedingJoinPoint.proceed(),于是我将该信息赋值给一个变量,后调用这个变量即可解决。
ProceedingJoinPoint.proceed()使用多少次,则会调用controller多少次!!!
因为不知其所以然,还请了解原因的前辈们告知原因。
附上代码
@Aspect
@Component
public class HttpLoggerRespect {
private final Logger logger = LoggerFactory.getLogger(HttpLoggerRespect.class);
@Pointcut("execution(public * com.bigdata.bigdata.controller..*(..))")
public void logPointCut() {
logger.debug("审计使用");
}
@Around("logPointCut()")
public Object doAround(ProceedingJoinPoint pjp) throws Throwable {
RequestAttributes ra = RequestContextHolder.getRequestAttributes();
// result的值就是被拦截方法的返回值
Object result =pjp.proceed(); ///错误原因导致1
System.out.prin