在配置aop时,切点表达式中写入了形参,在通知方法中,引入形参和JoinPoint 形参时,必须要把JoinPoint形参放置在第一位,否则会出现标题错误
@Component
@Aspect
public class RunCaseAspect {
@Pointcut(value = "execution(* com.nonobank.testcase.service.impl.TestCaseRunServiceImpl.runCase(..)) && args(resultHistory, tcId, tciIds, map, sessionId)",
argNames = "resultHistory, tcId, tciIds, map, sessionId")
public void runCase(ResultHistory resultHistory, Integer tcId, List<Integer> tciIds,
Map<String, Object> map, String sessionId) {}
@Before("runCase(resultHistory, tcId, tciIds, map, sessionId)")
public void beforeRunAll(JoinPoint joinPoint, ResultHistory resultHistory, Integer tcId, List<Integer> tciIds,
Map<String, Object> map, String sessionId) {
System.out.println("beforeRunAll .... tcId = " + tcId);
}
@AfterReturning(value = "runCase(resultHistory, tcId, tciIds, map, sessionId)",returning = "o")
public void afterRunAll(JoinPoint joinPoint, Object o, ResultHistory resultHistory, Integer tcId, List<Integer> tciIds,
Map<String, Object> map, String sessionId) {
System.out.println("AfterReturning ... o = " + o);
}
}