Spring Aspect编程中,Spring切面包含通知和切点,通知和切点分别定义了在何时何处执行切面逻辑。
其中,Spring定义了五种不同类型的通知:
-
Before(目标方法执行前)
-
After(目标方法执行后,不关注执行结果)
-
After-returning(目标方法执行后,返回通知)
-
After-throwing(目标方法抛出异常后)
-
Around(目标方法执行前后、异常)
Spring切点,通过匹配规则查找合适的连接点,AOP会在这些连接点上织入通知
本文仅关注@Around,通过切面逻辑并在其中添加Log或其他方式,帮助我们快速定位异常点,方便系统监控和bug排查,并通过下方代码展示其使用方式
@Aspect
@Component
@Slf4j
public class ControllerLogAop {
@Pointcut("execution(* *..*.*.controller..*.*(..))")
public void controller() {
}
@Around("controller()")
public Object controller(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
// 获取类名
String className = procee