Java面试题更新 2026-08-05

在 Spring Framework 中,通知(Advice)主要分为哪几种类型?请分别说明各类通知在方法调用链中的执行时机与典型用途。

后端开发技术原理Spring Framework

考察说明

考查对 Spring AOP 通知类型及其执行时机的理解。

回答思路

  1. 【回答框架 1】Spring AOP 中的通知(Advice)是在目标方法执行前后或异常抛出时由代理织入的增强逻辑,共分为五种类型:前置通知(Before)、后置通知(AfterReturning)、异常通知(AfterThrowing)、最终通知(After)和环绕通知(Around)。
  2. 【回答框架 2】前置通知在目标方法调用前执行,适用于权限校验、参数校验或日志记录;后置通知在方法正常返回后执行,可获取返回值,适用于结果增强或审计;异常通知在方法抛出异常时执行,可捕获异常并进行转换或记录。
  3. 【回答框架 3】最终通知无论方法正常返回还是抛出异常都会执行,类似 finally 块,适用于资源释放;环绕通知是最强大的类型,它可以在方法调用前后自定义逻辑,甚至决定是否调用目标方法以及修改返回值,其参数为 ProceedingJoinPoint。
  4. 【回答框架 4】在实际使用时,应优先选择最细粒度的通知类型,避免滥用环绕通知。例如,仅需前置校验时使用 Before 通知,而环绕通知适合需要完全控制执行流程的场景。
  5. 【回答框架 5】这些通知类型可以组合使用,但需要注意执行顺序:在默认配置下,多个前置通知按声明顺序执行,多个后置通知按声明顺序执行,不同的配置方式(如 XML 或注解)可能影响顺序,建议在实现中明确约定。
  6. 【关键点 1】五种通知类型:Before、AfterReturning、AfterThrowing、After、Around。
  7. 【关键点 2】每种通知都对应特定的目标方法执行时机。
  8. 【关键点 3】环绕通知可控制目标方法是否执行及返回值。
  9. 【关键点 4】实际应用中按需选用,注意通知组合时的顺序。