================================================
Spring的事务隔离级别有四个:READ_UNCOMMITTED、READ_COMMITTED、REPEATABLE_READ和SERIALIZABLE。
-
READ_UNCOMMITTED:允许一个事务读取到另一个事务未提交的数据
-
READ_COMMITTED:一个事务只能读取到已经提交后的数据
-
REPEATABLE_READ:一个事务可以多次从数据库读取某条记录,而且多次读取的那条记录都是一致的,除非事务本身发生改变
-
SERIALIZABLE:不允许读取、修改
spring事务的传播机制有七种:REQUIRED、REQUIRES_NEW、NESTED、SUPPORTS、NOT_SUPPORTED、MANDATORY和NEVER。
-
REQUIRED:如果上层有事务则加入该事务,没有就创建新事务
-
SUPPORTS:如果上层有事务则加入该事务,没有就以非事务方式执行
-
REQUIRES_NEW:如果上层有事务则挂起当前事务,没有就创建新事务
-
NOT_SUPPORTED:如果上层有事务则挂起当前事务,没有就以非事务方式执行
-
NEVER:如果上层有事务则抛出异常,没有就以非事务方式执行
-
MANDATORY:如果上层有事务则加入该事务,没有就抛出异常
-
NESTED:如果上层有事务则嵌套该事务执行,没有就创建新事务
3.1基于XML方式的配置
3.1.1 将Spring提供的事务管理配置交给Spring容器
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
3.1.2 通过Spring jdbc提供的tx标签,声明事务管理策略
- 头文件中添加tx的约束条件和命名空间
xmlns:tx="http://www.springframework.org/schema/tx"
http://www.springframework.org/schema/tx
https://www.springframework.org/schema/tx/spring-tx.xsd">
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="insert*" isolation="REPEATABLE_READ" propagation="REQUIRED"/>
<tx:method name="select*" isolation="REPEATABLE_READ" propagation="SUPPORTS"/>
</tx:attributes>
</tx:advice>
3.1.3 将事务管理策略以AOP配置应用于service操作方法
<aop:config>
<aop:pointcut id="crud" expression="execution(* com.gyh.service.*.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="crud"/>
</aop:config>
3.2 基于注解方式的配置
3.2.1 配置事务管理类并交给Spring容器
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
# 总结
如果你选择了IT行业并坚定的走下去,这个方向肯定是没有一丝问题的,这是个高薪行业,但是高薪是凭自己的努力学习获取来的,这次我把P8大佬用过的一些学习笔记(pdf)都整理在本文中了
**《Java中高级核心知识全面解析》**
![](https://img-blog.csdnimg.cn/img_convert/978bbb4fecb1e8bf5178bb84528d7a43.webp?x-oss-process=image/format,png)
**小米商场项目实战,别再担心面试没有实战项目:**
![](https://img-blog.csdnimg.cn/img_convert/2040361bb7ac7d4bff6296d9535b1e92.webp?x-oss-process=image/format,png)
8大佬用过的一些学习笔记(pdf)都整理在本文中了
**《Java中高级核心知识全面解析》**
[外链图片转存中...(img-jbQlQMVZ-1718784099538)]
**小米商场项目实战,别再担心面试没有实战项目:**
[外链图片转存中...(img-AFkWHShs-1718784099538)]