博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Spring事务管理

Posted on 2017-08-07 16:12  激流勇进、  阅读(231)  评论(0编辑  收藏  举报

1.什么是事务

  事务指的是逻辑上的一组操作,这组操作要么全部成功,要么全部失败。

2.事物的特性

 1.原子性<br>指的是事物是一个不可分割的部分,要么都发生。要么都不发生

 2.隔离性   多个并发事务之间数据要相互隔离

 3.一致性   事务处理前后数据的完整性必须保持一致

 4.持久性  一个事务被提交之后。它对数据库中数据的改变是持久的

3.Spring事物管理常用的3个接口:

 

 

4.Spring为不同的持久层框架提供不同的PlatformTransactionManager(接口)的实现

5.如果不考虑隔离。会引发的问题:
1.脏读。
一个事务读取了另一个事务改写但还未提交的数据,如果这些数据被回滚,则读到的数据是无效的。
2.不可重复读。
在同一个事务中,多次读取同一数据返回的结果有所不同。
3.幻读。
一个事务读取了几行记录后,另一个事务插入一些记录,幻读就发生了。再后来的查询中,第一个事务就会发现有些原来没有的记录。

MySQL默认事务隔离级别:REPATABLE_READ(可能出现幻读)
Oracle默认:READ_COMMITTED(可能出现不可重复读和幻读)
6.事务的传播行为:解决业务层方法之间相互调用 的问题:



7.事务的传播行为,重点记住红色的3个。


8.Spring支持两种方式事务管理:


9.声明式事务管理方式二:基于AspectJ的XML方式
配置步骤:1.事物管理器
          2.增强(就是配置通知)
          3.AOP配置

 

10.声明式事务管理方式三:基于注解的方式

  1.applicationContext.xml里配置事物管理器和开启注解方式
  2.业务层写上注解@transactional
  3.@transactional(这当中可以配置传播行为,隔离级别等内容)

 

11.Spring事物管理的分类和各方式的区别:


12.
applicationContext.xml中引入外部文件、连接池的配置、bean的配置



13.声明式事务管理方式一:基于TransactionProxyFactoryBean的方式
prop格式,key代表方法,实际开发中可能就是key="save*",key="update*"