SPRing事务:
实现原理:AOP
切入点、切面、连接点
AOP的实现原理是:动态代理,有jdk动态代理和CGLIB。
1.事务隔离级别:
根据数据库概念可以分为:脏读、读写提交、可重复读、序列化
不同的数据库所支持的隔离级别不同,例如Oracle支持是读写提交和序列化,默认为读写提交,MySQL默认的隔离级别为可重复读。
2.事务的传播行为
传播行为就是指在方法之间的掉用。
支持7中传播行为
传播行为 | 含义 | 备注 |
PROPAGATION_REQUIRED | 如果存在一个事务,则支持当前事务。如果没有事务则开启。 | 默认的 |
PROPAGATION_SUPPORTS | 如果存在一个事务,则支持当前事务。如果没有事务则非事务执行。 |
|
PROPAGATION_MANDATORY
| 如果存在一个事务,则支持当前事务。如果没有事务则抛出异常。 |
|
PROPAGATION_REQUIRES_NEW | 总是开启一个新事务,如果存在一个事务则将这个事务挂起。 | 在信用卡场景中,我们往往需要这个传播行为为每一个卡创建独立的事务 |
PROPAGATION_NOT_SUPPORTED | 总是非事务得执行,并挂起任何存在的事务。 |
|
PROPAGATION_NEVER | 总是非事务得执行,如果存在一个活动的事务,则抛出异常。 |
|
PROPAGATION_NESTED | 如果一个活的事务存在,则运行在一个嵌套的事务中;如果没有活动事务,TransactionDefinition. PROPAGATION_REQUIRED属性执行 |
|
新闻热点
疑难解答