
大家好我是锋哥。今天分享关于【Java高频面试题Spring-AOP通知和执行顺序】面试题。希望对大家有帮助Java高频面试题Spring-AOP通知和执行顺序1️⃣ Spring AOP 中的通知类型在 Spring AOP 中通知主要有以下几种类型前置通知Before Advice方法执行前执行。用于权限检查、日志打印等。不会影响目标方法执行结果。后置通知After Returning Advice方法正常返回后执行。可以获取目标方法的返回值。适合做结果处理、日志记录等。异常通知After Throwing Advice方法抛出异常时执行。用于异常处理、日志记录异常信息等。最终通知After Advice / After Finally方法执行完成后执行无论方法是否抛异常。类似finally用于资源清理、日志记录等。环绕通知Around Advice方法执行前后都可以处理。可以决定是否执行目标方法甚至修改返回值。功能最强大但实现也最复杂。2️⃣ Spring AOP 通知执行顺序假设有一个目标方法targetMethod()且同时存在多种通知执行顺序如下环绕通知的前半部分Around Before前置通知Before目标方法Target Method环绕通知的后半部分Around After后置通知After Returning若无异常异常通知After Throwing若有异常最终通知After / After Finally可以用图示理解环绕通知(前) ─► 前置通知 ─► 目标方法 ─► 环绕通知(后) ─► 后置通知 └─► 异常通知(若抛异常) └─► 最终通知(After Finally)3️⃣ 注意点环绕通知可以完全控制目标方法执行Object result proceedingJoinPoint.proceed(); // 执行目标方法异常处理顺序如果目标方法抛异常后置通知不会执行但异常通知和最终通知会执行。多个通知的优先级Spring AOP 默认按配置顺序或Order注解决定执行顺序。越小的Order值优先执行前置/环绕前或后执行环绕后/后置。