Spring交易管理Transaction【轉】

來源:互聯網
上載者:User

標籤:expr   tran   eth   exce   伺服器   spring   context   方法   col   

Spring提供了許多內建交易管理員實現(原文連結:https://www.cnblogs.com/qiqiweige/p/5000086.html):

  • DataSourceTransactionManager位於org.springframework.jdbc.datasource包中,資料來源交易管理員,提供對單個javax.sql.DataSource交易管理,用於Spring JDBC抽象架構、iBATIS或MyBatis架構的交易管理;
  • JdoTransactionManager位於org.springframework.orm.jdo包中,提供對單個javax.jdo.PersistenceManagerFactory交易管理,用於整合JDO架構時的交易管理;
  • JpaTransactionManager位於org.springframework.orm.jpa包中,提供對單個javax.persistence.EntityManagerFactory事務支援,用於整合JPA實現架構時的交易管理;
  • HibernateTransactionManager位於org.springframework.orm.hibernate3包中,提供對單個org.hibernate.SessionFactory事務支援,用於整合Hibernate架構時的交易管理;該交易管理員只支援Hibernate3+版本,且Spring3.0+版本只支援Hibernate 3.2+版本;
  • JtaTransactionManager位於org.springframework.transaction.jta包中,提供對分散式交易管理的支援,並將交易管理委託給Java EE應用伺服器交易管理員;
  • OC4JjtaTransactionManager位於org.springframework.transaction.jta包中,Spring提供的對OC4J10.1.3+應用伺服器交易管理員的適配器,此適配器用於對應用伺服器提供的進階事務的支援;
  • WebSphereUowTransactionManager位於org.springframework.transaction.jta包中,Spring提供的對WebSphere 6.0+應用伺服器交易管理員的適配器,此適配器用於對應用伺服器提供的進階事務的支援;
  • WebLogicJtaTransactionManager位於org.springframework.transaction.jta包中,Spring提供的對WebLogic 8.1+應用伺服器交易管理員的適配器,此適配器用於對應用伺服器提供的進階事務的支援。

DataSourceTransactionManager為例管理iBATIS或MyBatis架構的事務

在applicationContext.xml中配置:

<!-- 交易管理員 -->    <bean id="txManager"        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">        <property name="dataSource" ref="dataSource" />    </bean>    <!-- 配置事務特性 -->    <tx:advice id="txAdvice" transaction-manager="txManager">        <tx:attributes>            <tx:method name="add*" propagation="REQUIRED" isolation="DEFAULT"                rollback-for="Exception" />            <tx:method name="delete*" propagation="REQUIRED" isolation="DEFAULT"                rollback-for="Exception" />            <tx:method name="update*" propagation="REQUIRED" isolation="DEFAULT"                rollback-for="Exception" />            <tx:method name="save*" propagation="REQUIRED" isolation="DEFAULT"                rollback-for="Exception" />            <tx:method name="create*" propagation="REQUIRED" isolation="DEFAULT"                rollback-for="Exception" />            <tx:method name="getExpressBuss" propagation="REQUIRED"                isolation="DEFAULT" rollback-for="Exception" />            <tx:method name="getInvoiceInfo" propagation="REQUIRED"                isolation="DEFAULT" rollback-for="Exception" />            <tx:method name="*" read-only="true" />        </tx:attributes>    </tx:advice>    <!-- 配置哪些類的方法需要進行交易管理 -->    <aop:config>        <aop:pointcut id="allServiceMethod"            expression="execution(* com.qiqi.web.service..*.*(..)) || execution(* test.service..*.*(..))" />        <aop:advisor advice-ref="txAdvice" pointcut-ref="allServiceMethod" />    </aop:config>

可以根據不同的模組配置不同的事務傳播特性

Spring交易管理Transaction【轉】

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.