• spring的事务管理有几种方式实现,如何实现?

事务的实现方式:实现方式共有两种:编码方式;声明式事务管理方式

基于AOP技术实现的声明式事务管理,实质就是:在方法执行前后进行拦截,然后再目标方法开始之前创建并加入事务执行完目标方法后根据执行情况提交或回滚事务.

声明式事务管理又有两种实现方式:基于xml配置文件的方式;另一个实在业务方法上进行@Transaction注解,将事务规则应用到业务逻辑中。

一种常见的事务管理配置:事务拦截器TransactionInterceptor和事务自动代理BeanNameAutoProxyCreator相结合的方式。

  • 事物配置中有哪些属性可以配置

(1)、事务的传播性:@Transactional(propagation=Propagation.REQUIRED)

如果有事务, 那么加入事务, 没有的话新建一个(默认情况下)

(2)、事务的超时性:@Transactional(timeout=30) //默认是30秒

注意这里说的是事务的超时性而不是Connection的超时性,这两个是有区别的

(3)、事务的隔离级别:@Transactional(isolation = Isolation.READ_UNCOMMITTED)

读取未提交数据(会出现脏读, 不可重复读) 基本不使用

(4)、回滚:

指定单一异常类:@Transactional(rollbackFor=RuntimeException.class)

指定多个异常类:@Transactional(rollbackFor={RuntimeException.class, Exception.class})

该属性用于设置需要进行回滚的异常类数组,当方法中抛出指定异常数组中的异常时,则进行事务回滚。

(5)、只读:@Transactional(readOnly=true)

该属性用于设置当前事务是否为只读事务,设置为true表示只读,false则表示可读写,默认值为false。

这种注解方式实现事务的配置以及一些属性的定义,事务的东西还有很多要注意的事项

转自:https://blog.csdn.net/rocksteadypro/article/details/79542052

最新文章

  1. Clash Detection
  2. SQL 创建随机时间的函数
  3. jquery筛选器
  4. 【MFC】序列化(Serialize)、反序列化(Deserialize)
  5. TCP数据流稳定性--TCP分片,重组及乱序
  6. 面向对象的ExtJS场景开发
  7. android 搭建开发环境
  8. c语言_帮助别人
  9. Flasback数据库(闪回数据库)
  10. Xcode 的正确打开方式——Debugging(转)
  11. 解决&nbsp在IE与firefox宽度不一致的问题
  12. 慕课linux学习笔记(五)常用命令(2)
  13. C在宏定义中使用的语言可变参数
  14. 百度云语音识别,Audio2Txt(c#)
  15. FZU 2107 Hua Rong Dao(暴力回溯)
  16. H - transaction transaction transaction
  17. 转自知乎-wifi破解
  18. 201621123040《Java程序设计》第九周学习总结
  19. PRTG测试!
  20. LuoGu P1352 没有上司的舞会

热门文章

  1. bzoj2733永无乡
  2. import torch错误解决
  3. 单调队列优化DP——习题收集
  4. Hadoop配置多个HDFS入口
  5. [51nod1666] 最大值
  6. 利用Python脚本完成一个Fat-tree型的拓扑
  7. ARTS打卡计划第九周
  8. 我的zshrc文件设置备份
  9. moveDown()
  10. arcgis python desc.dataType