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.
目标对象(Target Object):被一个或多个切面通知的对象。
6.
代理(Proxy):在 AOP 中,代理对象是在 Spring 容器中生成的,增强了目标对象的功能。
7.
织入(Weaving):将切面应用到目标对象并创建代理对象的过程。
Step 2
Q:: Spring AOP 和 OOP 有什么区别?
A:: Spring AOP(面向切面编程)和 OOP(面向对象编程)是两种不同的编程范式。OOP 侧重于将数据和行为封装到对象中,通过继承和多态实现代码重用和扩展性。AOP 则侧重于模块化横切关注点,如日志记录、事务管理等,AOP 允许开发者将这些关注点从业务逻辑中分离出来,以提高代码的可维护性和清晰度。
Step 3
Q:: 如何在 Spring 中实现 AOP?
A:: 在 Spring 中实现 AOP 的步骤包括:
1. **定义切面(Aspect)**:可以使用 @
Aspect 注解定义一个类为切面类。
2. **定义切入点(Pointcut)**:使用 @
Pointcut 注解来标记一个方法,定义通知的触发条件。
3. **定义通知(Advice)**:使用 @Before、@After、@
Around 等注解来定义方法执行的通知。
4. **配置 AOP**:在 Spring 配置中启用 @EnableAspectJAutoProxy 或者在 XML 文件中配置 <aop:aspectj-autoproxy/>
来启用 AOP 功能。
Step 4
Q:: Spring AOP 中有哪些常用的通知类型?
A:: Spring AOP 中常用的通知类型包括:
1.
前置通知(Before Advice):在连接点方法执行前执行。
2.
后置通知(After Advice):在连接点方法执行后执行。
3.
返回通知(After Returning Advice):在连接点方法成功返回结果后执行。
4.
异常通知(After Throwing Advice):在连接点方法抛出异常后执行。
5.
环绕通知(Around Advice):包围连接点的方法,既可以在方法执行前,也可以在方法执行后执行。