Spring的事务管理
来源:互联网 发布:男士护肤 知乎 编辑:程序博客网 时间:2024/06/05 20:48
在Spring的事务管理中,我们可以使用@Transactional这一annotation来对事务进行声明式的设定。具体而言,就是在类或者方法前添加@Transactional并传入属性参数以获取所需要的Transaction特性。Spring中的@Transactional有5个属性:Propagation、Isolation、Rollback Rules、Timeout和Read-Only,其中Propagation属性定义了Transaction的边界 — 是否使用Transaction、在Transaction已存在的情况下如何表现等。
在service类前加上@Transactional,声明这个service所有方法需要事务管理。每一个业务方法开始时都会打开一个事务。
Spring默认情况下会对运行期例外(RunTimeException)进行事务回滚。这个例外是unchecked
如果遇到checked意外就不回滚。
如何改变默认规则:
1 让checked例外也回滚:在整个方法前加上 @Transactional(rollbackFor=Exception.class)
2 让unchecked例外不回滚: @Transactional(notRollbackFor=RunTimeException.class)
3 不需要事务管理的(只查询的)方法:@Transactional(propagation=Propagation.NOT_SUPPORTED)
在整个方法运行前就不会开启事务
还可以加上:@Transactional(propagation=Propagation.NOT_SUPPORTED,readOnly=true),这样就做成一个只读事务,可以提高效率。
使用Annotation元数据驱动的声明式事务管理,基本上就需要做两件事:
使用@Transactional标注相应的业务对象以及相关业务方法. 这一步通常由业务对象的开发者统一负责了,@Transactional的使用使得元数据以及业务逻辑的实现全部集中到了一处,有了IDE的支持, 管理起来更是得心应手。
在容器的配置文件中设定事务基础设施. 我们需要添加<tx:annotation-driven transaction-manager="transactionManager"/>以便有人使用我们所标注的@Transactional, 并且,需要给出相应的事务管理器,要进行事务管理,没有他可不行。
- Spring , Spring的事务管理
- Spring事务管理一:Spring事务管理的优点
- spring提供的事务管理
- spring 的事务管理
- spring的事务管理方式!
- spring框架的事务管理
- spring的事务管理问题
- Spring框架的事务管理
- Spring 事务管理的配置
- 关于spring 的事务管理
- Spring的事务管理
- spring的事务管理
- Spring事务管理的改进
- Spring的事务管理
- 配置spring的事务管理
- Spring 的事务管理
- spring事务管理的种类
- Spring的事务管理
- render与render_to_response的区别
- HDU 1171 Big Event in HDU(多重背包)
- Jzoj4746 树塔狂想曲
- HDU 1572 下沙小面的(2)
- C++ 严格弱序
- Spring的事务管理
- 正向代理、反向代理
- FCN语义分割——直接加载图像数据
- ios-GCD信号量
- Android超酷的加载效果
- Win10系统如何在右键菜单添加"管理员取得所有权
- OPENMV结合PIX飞控实现定点 循迹
- 进程简述
- python反射