首先,在一个批量插入的方法定义了切入点
@Pointcut(value = "execution(* com.cases.dao.mapper.duty.DutyTableDao.insertBatch(..))")
public void pointcut() {
log.info("DutyDeleteInterceptor:pointcut");
}
@AfterReturning方法可以正常进入,但是批量插入insertBatch方法却没有执行。
原因就在@Around注解方法
这是原来的代码
@Around(value = "pointcut()")
public void methodAround(ProceedingJoinPoint joinPoint) throws Throwable {
log.info("DutyDeleteInterceptor:methodAround");
}
修改后的代码
@Around(value = "pointcut()")
public Object methodAround(ProceedingJoinPoint joinPoint) throws Throwable {
log.info("DutyDeleteInterceptor:methodAround");
return joinPoint.proceed();
}
调试,成功。
小知识:
joinPoint.proceed() 的返回值是Object类型,Object result = joinPoint.proceed();
其实这句代码的意思就是正常去执行我们的业务,返回值result,在错误代码中,返回值写成了void,所以正常业务拿不到返回值了