Spring 面试题, Spring AOP 相关术语都有哪些?
Spring 面试题, Spring AOP 相关术语都有哪些?
QA
Step 1
Q:: Spring AOP 相关术语都有哪些?
A:: Spring AOP 相关术语包括以下几个:
1.
Aspect(切面):切面是模块化的关注点,是横切关注点的实现。
2.
Join point(连接点):连接点是程序执行过程中明确的点,例如方法调用或异常处理。
3.
Advice(通知):通知是指切面在特定的连接点执行的动作。
4.
Pointcut(切入点):切入点是用来定义切面应当织入的连接点的集合。
5.
Introduction(引入):引入允许我们添加新方法或属性到现有的类。
6.
Target(目标对象):目标对象是被一个或多个切面所通知的对象。
7.
Weaving(织入):织入是将切面应用到目标对象并创建代理对象的过程。
8.
Proxy(代理):代理是目标对象的替代对象,Spring AOP 默认使用 JDK 动态代理或 CGLIB 代理。
Step 2
Q:: 什么是 Aspect?它在 Spring AOP 中的作用是什么?
A:: Aspect 是模块化的关注点,通常横切关注点(如日志记录、事务管理等)可以被封装到一个 Aspect 中。在 Spring AOP 中,Aspect 是通过普通类和注解来实现的,并且能够在程序的特定点(切入点)执行增强逻辑(通知)。
Step 3
Q:: Pointcut 和 Advice 之间有什么关系?
A:: Pointcut 定义了在哪些连接点上切面应该被应用,而 Advice 则是在这些连接点上执行的实际操作。换句话说,Pointcut 是切入点表达式,用于选择特定的连接点,而 Advice 则是针对这些连接点的具体行为。
Step 4
Q:: 什么是 Join point?Spring AOP 如何识别它们?
A:: Join point 是程序执行的某个特定点,例如方法调用、异常处理等。在 Spring AOP 中,连接点通常指方法的执行点。Spring AOP 是基于代理的 AOP 实现,它通过分析方法的调用栈来识别这些连接点。
Step 5
Q:: Spring AOP 中的织入是什么?
A:: 织入是将切面应用到目标对象并创建代理对象的过程。在 Spring AOP 中,织入通常在运行时进行,通过 JDK 动态代理或 CGLIB 代理实现。