定义

环绕通知

手动控制连接点的运行,使用@Around指定切入点和通知方法。通知方法的返回值将代替连接点的返回值。

参数

ProceedingJoinPoint

必须有一个类型为ProceedingJoinPoint的参数来执行连接点(方法)。

示例

@Aspect  
@Component
@Slf4j
public class LogAspect {
	@PointCut("@annotation(com.example.annotation.Log)")
	public void logAnnotation() { }
	
	@Around("logAnnotation()")
	public void logAround(ProceedingJoinPoint proceedingJoinPoint) {  
		MethodSignature signature = (MethodSignature) proceedingJoinPoint.getSignature();  
		Method method = signature.getMethod();
		log.info(“before method:{}”, method.getName());
		proceedingJoinPoint.proceed();
		log.info(“after method:{}”, method.getName());
	}
}