Spring的声明式事务介绍

简介:
.Spring框架引入的重要因素之一是它全面的事务支持.
.Spring框架提供了一致的事务管理方式,给程序带来以下好处
-提供简单易用的编程式事务管理API.(编程式事务就是通过实现或者借助Spring提供的API完成事务管理)
-支持声明式事务管理(通过注解和配置的方式完成事务管理而不需要在业务代码实现任何的Spring API)
-便于Spring整合各种数据访问技术(mybatis,hibernate,)

2.Spring的声明式事务
Spring的声明式事务是通过Spring AOP实现的,使用时不需要修改原有的业务代码,只
需要通过简单配置就可以追加事务控制功能
.绝大多数Spring的用户选择声明式事务,方便,对程序的影响很小,符合非侵入式的概念

3.如何使用注解实现声明式事务
两种方式实现声明式事务
1.使用注解的方式
1.1步骤一:在applicationContext.xml中声明事务组件
1.2步骤二:开启事务注解扫描
1.3步骤三:使用@Transactional注解声明事务


2.通过配置文件配置的方式
步骤一:取消事务注解
步骤二:使用xml配置声明事务范围

ps:说明:以上配置都是默认配置,只会RuntimeException进行回滚,无法对CheckedException
生效.
解决方式:rollback-for属性扩大范围

RuntimeException              Check Exception
                            NoSuchMethodException
                            IOException
                            ClassNotFoundException

属性详细说明:
rollback-for:设置遇到哪些异常必须回滚
norollback-for:设置遇到哪些异常不回滚
propagation:设置传播属性
isolation:设置事务隔离级别
readOnly:设置为只读,还是可读写

事务的隔离级别:
.在读取数据库的过程中,如果两个事务并发执行,那么彼此之间的数据就会发生影响,
为了表明这种并发产生的冲突,需要将两个事务隔离开,根据隔离的程度不同可以分为
以下几种级别

read_uncommitted:只是事务隔离的最低级别,它可以允许你看到另外一个事务已修改
但未提交的数据.

read_committed:这是主流数据库默认事务等级,保证了一个事务不会读取到另一个并发
事务已经修改但未提交的数据,该级别适合于大多数系统

default:使用数据库的隔离级别.
 

猜你喜欢

转载自blog.csdn.net/CXY_ZPH/article/details/88285779