Spring面试题, Spring 有哪几种事务传播行为?
Spring面试题, Spring 有哪几种事务传播行为?
QA
Step 1
Q:: Spring有哪几种事务传播行为?
A:: Spring框架提供了七种事务传播行为,它们是:
1. PROPAGATION_REQUIRED:
如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务。
2. PROPAGATION_SUPPORTS:
如果当前存在事务,则加入该事务;如果当前没有事务,则以非事务方式继续执行。
3. PROPAGATION_MANDATORY:
如果当前存在事务,则加入该事务;如果当前没有事务,则抛出异常。
4. PROPAGATION_REQUIRES_NEW:
创建一个新的事务,如果当前存在事务,则把当前事务挂起。
5. PROPAGATION_NOT_SUPPORTED:
以非事务方式执行操作,如果当前存在事务,则把当前事务挂起。
6. PROPAGATION_NEVER:
以非事务方式执行,如果当前存在事务,则抛出异常。
7. PROPAGATION_NESTED:
如果当前存在事务,则创建一个事务嵌套,如果当前没有事务,则创建一个新的事务。
Step 2
Q:: Spring中如何管理事务?
A:: Spring中通过声明式事务和编程式事务两种方式管理事务。声明式事务是通过@
Transactional注解或者在配置文件中声明事务管理器,编程式事务是通过TransactionTemplate或PlatformTransactionManager手动管理事务。
Step 3
Q:: 什么是Spring中的AOP?
A:: AOP(Aspect Oriented Programming,面向切面编程)是Spring的核心内容之一,它通过在不修改源代码的情况下将横切关注点(如事务管理、日志记录、权限控制等)分离出来,进行统一管理。AOP通过定义切面(Aspect)、切点(Pointcut)、通知(Advice)和织入(Weaving)实现功能的动态增强。