transactionManager : 编程式事务.建立在AOP之上的。其本质是对方法前后进行拦截 .不需要在业务逻辑代码中掺杂事务管理的代码,只需在配置文件中做相关的事务规则声明(或通过基于@Transactional注解的方式),便可以将事务规则应用到业务逻辑中。
   transactionTemplate : 编程式事务使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事务管理,spring推荐使用TransactionTemplate。
   优缺点:
     1.声明式事务管理要优于编程式事务管理,这正是spring倡导的非侵入式的开发方式 . 只要加上注解就可以获得完全的事务支持。
     2. 编程式事务那样可以作用到代码块级别,而且声明式事务管理最细粒度只能作用到方法级别.二者的作用级别和颗粒度有一定的的差别。

一. 声明式事务
1.配置方式
   <-- 开启事务控制的注解支持 -->
  <tx:annotation-driven transaction-manager=“transactionManager”/>
      <-- applicationContext.xml : 中进行配置 -->
  < bean id=“transactionManager” class=“org.springframework.jdbc.datasource.DataSourceTransactionManager”>
     < property name=“dataSource” ref=“dataSource” />
   </ bean>
2. 使用@Transactional注解
  @Transactional 注解应该只被应用到 public 方法上 , @Transactional 注解可以作用于接口、接口方法、类以及类方法上,但是 Spring 建议不要在接口或者接口方法上使用该注解,因为这只有在使用基于接口的代理时它才会生效,一般应用在方法上,如果某些方法被protected、private 或者默认可见性的修饰后,将会自动进行忽略,即使出现异常,也不会进行报错.
  应用:(下列注解贴于方法或者类上,就可以对整个方法或者类进行事务管理)
     @Transactional
     @Transactional(propagation = Propagation.REQUIRES_NEW)
     @Transactional(“transactionManager”)
二. 编程式事务
1.配置方式
   <-- 开启事务控制的注解支持 -->
  <tx:annotation-driven transaction-manager=“transactionManager”/>
     <-- 使用spring jdbc管理事务 -->
  < bean id=“transactionManager” class=“org.springframework.jdbc.datasource.DataSourceTransactionManager”>
     < property name=“dataSource” ref=“dataSource”/>
   < /bean>
   <-- applicationContext.xml : 中进行配置 -->
  < bean id=“transactionTemplate” class=“org.springframework.transaction.support.TransactionTemplate”>
    < property name=“transactionManager” ref=“transactionManager”/>
   </ bean >
2. 使用@Transactional注解
   注入依赖方式:
  @Autowired
   private TransactionTemplate transactionTemplate;
   注解方式
   @Transactional(“transactionTemplate”)

使用 transactionManager和transactionTemplate管理事务相关推荐

  1. spring是如何管理 事务的

    Spring提供的事务管理可以分为两类:编程式的和声明式的.编程式的,比较灵活,但是代码量大,存在重复的代码比较多:声明式的比编程式的更灵活方便. 1.传统使用JDBC的事务管理 以往使用JDBC进行 ...

  2. spring管理事务管理1----------编程式(以下源码均为spring2.5.6)

    2019独角兽企业重金招聘Python工程师标准>>> Spring事务策略,有一个接口"PlatformTransactionManager". /* * Co ...

  3. 使用Redis 管理事务(Java)

    前言: Redis中的事务允许在一个步骤中执行一组命令.对某些用户来说,在Java上管理Redis事务可能会非常棘手,但如果您拥有合适的工具,则会更容易. 此篇会介绍在Java上执行Redis事务的所 ...

  4. Spring管理事务的若干配置形式

    Spring管理事务的若干配置形式 虽说利用Spring来实现配置式事务的基本原理都是AOP,但其配置方法也多种多样,以下从互联网摘抄了一些,希望起一个总结作用(有版权问题的话请留言作者,我将立即删除 ...

  5. Spring Data JPA手动管理事务

    1.简介 通常在开发中,我们都会直接使用Spring提供的@Transactional注解来管理事务.但是在某些特殊的情况下,需要我们进行手动的事务管理.例如:将数据保存到数据库后,才能发送消息到队列 ...

  6. JAVA Spring 事务管理事务不回滚问题

    Spring事务管理事务不回滚 dao层: @Repository public class UserDaoImpl implements UserDao { @Autowired private J ...

  7. Spring事务和Aspects框架管理事务,看这篇就够了!(简单易懂!)

    Spring事务和Aspects框架管理事务的用法 一.事务的介绍 1.1什么是事务 1.2事务的四大特性 二.事务的隔离级别以及导致的问题介绍 2.1隔离级别介绍 2.2导致的问题介绍 2.2.1脏 ...

  8. transactionManager手动事物管理--记一次重大的生产事故

    前言 最近在线上环境出现了一个机器总是宕机的问题.就是资源总是耗尽,但是报错的功能点还不一样,每次报错之后都是先重启解决.但是支撑不了一天又会出现资源耗尽的提示.不过,哪个功能出现问题之后,经过仔细的 ...

  9. 关于使用spring管理hibernate,能够管理事务,却不执行除查询外的增删改操作,不能让数据库数据改变的原因

    排除脏读的话 我终于学会了spring-aop管理事务,可以不写事务代码,详见我的博文 https://blog.csdn.net/thebestway/article/details/1012028 ...

最新文章

  1. 全中国一共有多少IP地址?
  2. w10安装ubuntu_Win10 + Ubuntu 16.04双系统完美安装教程【详细】
  3. 信息系统项目管理师-案例分析专题(一)案例简介、答题方法、要点笔记
  4. hihocoder 1075 : 开锁魔法III
  5. Eclipse4.8.0无法打开 Eclipse MarketPlace
  6. C语言Stock span 库存跨度问题(附完整源码)
  7. 数据级并行--计算机体系结构
  8. [PAT乙级]1046 划拳
  9. 兼容IE与firefox的css 线性渐变(linear-gradient)
  10. 字符设备驱动高级篇5——静态映射表、动态映射结构体方式操作寄存器
  11. 数据管理流程,基础入门简介
  12. linux安装及配置c++的opencv库
  13. matlab中的方波信号图片_哈工大、哈工程MATLAB被禁用,这个国产软件号称可替代!...
  14. 平安产险_杭州平安产险:寒风中靓丽的一抹橙坚守者
  15. 量化股票查询代码是什么?
  16. 第三方服务之Bmob——快速入门
  17. 【案例】别人卖1000刀!一套油管自动生产视频赚钱方法详解,FFMPEG高手看来
  18. MBA中国网关注:打造最佳团队的5大秘诀
  19. 【笔记】Polygon mesh processing 读书笔记(1)
  20. HTML5期末大作业:英雄联盟网站设计——英雄联盟LOL(4页) HTML+CSS+JavaScript web期末网站设计大作业

热门文章

  1. 人工神经网络的基本原理
  2. STP接口状态,RSTP协议,MSTP协议
  3. vue3实现一个抽奖小项目
  4. 调用百度智能云API,实现身份证智能识别并转语音 | Python
  5. 【实战】利用多线程优化查询百万级数据
  6. Android旋转屏幕
  7. 使用TPOT自动选择scikit-learn机器学习模型和参数
  8. 张玉清 国家计算机网络,张玉清-中国科学院大学-UCAS
  9. Safe Computations
  10. 微信群发多个用户 python