首页 > 其他分享 >Spring AOP 面试题大全

Spring AOP 面试题大全

时间:2025-01-04 14:34:32浏览次数:3  
标签:面试题 示例 Spring AOP 切面 通知 执行

以下是 Spring AOP(Aspect-Oriented Programming, 面向切面编程) 面试中常见的 15+ 道经典问题,每道问题都包含详细解答和代码示例,以便于理解与记忆。


1. 什么是 AOP?

  • 问题: 请解释什么是 AOP 以及其核心概念。
  • 解答:
    • AOP 是一种编程思想,用于处理程序中的 横切关注点(如日志、事务、安全性等),通过将这些功能与核心业务逻辑分离,简化代码结构。
    • 核心术语:
      • Aspect(切面): 封装横切关注点的模块。
      • Join Point(连接点): 程序执行的特定点(如方法调用)。
      • Advice(通知): 在连接点上执行的操作。
      • Pointcut(切入点): 定义切面作用的范围。

2. Spring AOP 的实现原理是什么?

  • 问题: Spring AOP 是如何实现的?
  • 解答:
    • Spring AOP 基于 动态代理 实现:
      1. 如果目标类实现了接口,则使用 JDK 动态代理
      2. 如果目标类没有实现接口,则使用 CGLIB 动态代理
    • 动态代理的作用: 在方法调用前后插入切面逻辑。

示例:

// JDK 动态代理示例
public interface Service {
   
    void perform();
}

public class ServiceImpl implements Service {
   
    public void perform() {
   
        System.out.println("Executing Service Logic");
    }
}

3. 什么是通知(Advice)?

  • 问题: Spring AOP 支持哪些通知类型?
  • 解答:
    • 通知类型包括:
      1. 前置通知(@Before): 在方法执行之前执行。
      2. 后置通知(@After): 在方法执行之后执行。
      3. 返回通知(@AfterReturning): 在方法成功返回后执行。
      4. 异常通知(@AfterThrowing): 在方法抛出异常时执行。
      5. 环绕通知(@Around): 包裹方法执行的前后。

代码示例:

@Aspect
@Component<

标签:面试题,示例,Spring,AOP,切面,通知,执行
From: https://blog.csdn.net/weixin_45476869/article/details/144906097

相关文章