spring5_05 事务管理

介绍:

1.事务通常添加到 JavaEE 三层结构里面 Service 层(业务逻辑层)

2.在Spring中管理事务
编程式管理(其实就是代码)
声明式管理(注解方式和XML配置的方式)

3.声明式管理底层使用的其实就是AOP原理

================================================

注解声明式管理

1.创建事务管理器:
在这里插入图片描述
2.开启事务扫描(须先导入tx空间名称)
开启事务扫描
3.在类或方法上面添加@Transactional (事务注解)

类上面: 为这个类添加事务
方法上:为这个方法添加事务

============================================

事务管理操作管理参数

1、注解里面可以配置事务相关参数
2、propagation:事务传播行为
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
3、Isolation隔离级别:
在这里插入图片描述
mysql四个隔离级别(介绍):
1.Read uncommitted (读未提交)
一个事务可以读取另一个事务未提交的数据,会导致脏读的发生。
2.Read committed (读已提交)
若有事务对数据对数据进行更新操作,读操作要等待更新事务提交后才能读取数据,可以解决脏读,无法解决不可重复读。
3.Repeatable read (可重复读)
某一事务在进行读操作时,不允许其他事务进行修改操作。此时不允许修改操作,但是可能会有插入操作,即可能会有幻读的情况。
4.Serializable(序列化)
最高的事务隔离级别,在该级别下事务串行化执行,有效避免脏读,不可重复读,幻读,但是对数据库性能影响比较大。

4、timeout:超时时间
(1)事务需要在一定时间内进行提交,如果不提交进行回滚
(2)默认值是 -1 ,设置时间以秒单位进行计算
5、readOnly:是否只读
(1)读:查询操作,写:添加修改删除操作
(2)readOnly 默认值 false,表示可以查询,可以添加修改删除操作
(3)设置 readOnly 值是 true,设置成 true 之后,只能查询
6、rollbackFor:回滚
(1)设置出现哪些异常进行事务回滚
7、noRollbackFor:不回滚
(1)设置出现哪些异常不进行事务回滚

总结注解声明式事务:
①先通过创建DataSourceTransactionManager事务管理器,
②再通过增加tx空间注入,通过tx:annotation-driver 中的transaction-manager指定事务管理器,开启事务管理,
③最后在类上和方法上添加@Transactional 注解;

================================================

事务操作(XML 声明式事务管理):

<!--1 创建事务管理器--> 
<bean id="transactionManager" 
class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 
<!--注入数据源--> 
<property name="dataSource" ref="dataSource"></property> 
</bean> 
	<!--2 配置通知--> 
	<tx:advice id="txadvice"> 
	
	<!--配置事务参数--> 
	<tx:attributes> 
	
	<!--指定哪种规则的方法上面添加事务--> 
	<tx:method name="accountMoney" propagation="REQUIRED"/> 
	<!--<tx:method name="account*"/>--> 
	</tx:attributes> 
	</tx:advice> 
	
<!--3 配置切入点和切面--> 
<aop:config> 

		<!--配置切入点--> 
		<aop:pointcut id="pt" expression="execution(* 
		com.atguigu.spring5.service.UserService.*(..))"/> 
		<!--配置切面--> 
		<aop:advisor advice-ref="txadvice" pointcut-ref="pt"/> 
		
</aop:config> 

===================================================

完全注解开发:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/First_____/article/details/114197340