使用 transactionManager和transactionTemplate管理事务

使用 transactionManager和transactionTemplate管理事务transactionM 编程式事务 建立在 AOP 之上的 其本质是对方法前后进行拦截 不需要在业务逻辑代码中掺杂事务管理的代码 只需在配置文件中做相关的事务规则声明 或通过基于 Transactiona 注解的方式 便可以将事务规则应用到业务逻辑中 transactionT 编程式事务使用 TransactionT 或者直

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

一. 声明式事务
1.配置方式
   <-- 开启事务控制的注解支持 -->
  


      <-- applicationContext.xml : 中进行配置 -->
  < bean id=“transactionManager” class=“org.springframework.jdbc.datasource.DataSourceTransactionManager”>
     < property name=“dataSource” ref=“dataSource” />
  

2. 使用@Transactional注解
  @Transactional 注解应该只被应用到 public 方法上 , @Transactional 注解可以作用于接口、接口方法、类以及类方法上,但是 Spring 建议不要在接口或者接口方法上使用该注解,因为这只有在使用基于接口的代理时它才会生效,一般应用在方法上,如果某些方法被protected、private 或者默认可见性的修饰后,将会自动进行忽略,即使出现异常,也不会进行报错.
  应用:(下列注解贴于方法或者类上,就可以对整个方法或者类进行事务管理)
     @Transactional
     @Transactional(propagation = Propagation.REQUIRES_NEW)
     @Transactional(“transactionManager”)
二. 编程式事务
1.配置方式
   <-- 开启事务控制的注解支持 -->
  


     <-- 使用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”/>
  

2. 使用@Transactional注解
   注入依赖方式:
  @Autowired
   private TransactionTemplate transactionTemplate;
   注解方式
   @Transactional(“transactionTemplate”)







































版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/209350.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午9:27
下一篇 2026年3月19日 上午9:27


相关推荐

  • Linux中vdbench的安装与使用

    Linux中vdbench的安装与使用vdbench是一个I/O工作负载生成器,用于验证数据完整性和度量直接附加和网络连接的存储的性能。它是一个免费的工具,容易使用,而且常常用于测试和基准测试。可以使用vdbench测试磁盘和文件系统的读写性能。环境:Ubuntu16.04一、安装Javavdbench的运行需要依赖于java,先查看主机是否装有java:java-version在当前主机中,没有…

    2022年5月12日
    45
  • Java main方法

    Java main方法publicstaticvoidmain(String[]args){}或者 publicstaticvoidmain(Stringargs[]){}main方法是我们学习Java语言学习的第一个方法,也是每个java使用者最熟悉的方法,每个Java应用程序都必须有且仅有一个main方法。在eclipse里可以使用输入main,在按住Alt+/的方式快速创建main方法

    2022年6月1日
    34
  • 【Linux】Linux中常用操作命令

    【Linux】Linux中常用操作命令

    2021年9月22日
    49
  • response contentType值的问题

    response contentType值的问题response,contentType,UTF-8,ISO-8859-1

    2022年7月19日
    34
  • python实现Lasso回归

    python实现Lasso回归Lasso原理Lasso与弹性拟合比较python实现importnumpyasnpimportmatplotlib.pyplotaspltfromsklearn.metricsimportr2_score#defmain():#产生一些稀疏数据np.random.seed(42)n_samples,n_features=50,200X=np…

    2022年6月8日
    127
  • 怎么新建pytest的ini文件_pytest.ini配置

    怎么新建pytest的ini文件_pytest.ini配置前言pytest配置文件可以改变pytest的运行方式,它是一个固定的文件pytest.ini文件,读取配置信息,按指定的方式去运行查看pytest.ini的配置选项pytest-h找到以下

    2022年7月31日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号