spring事务管理器总结

Spring提供了许多内置事务管理器实现:

  • DataSourceTransactionManager位于org.springframework.jdbc.datasource包中,数据源事务管理器,提供对单个javax.sql.DataSource事务管理,用于Spring JDBC抽象框架、iBATIS或MyBatis框架的事务管理;

    Java代码 收藏代码
    1. <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    2. <property name="dataSource" ref="dataSource"/>
    3. </bean>
  • JdoTransactionManager位于org.springframework.orm.jdo包中,提供对单个javax.jdo.PersistenceManagerFactory事务管理,用于集成JDO框架时的事务管理;
    Java代码
    1. <bean id="txManager" class="org.springframework.orm.jdo.JdoTransactionManager">
    2. <property name="persistenceManagerFactory" ref="persistenceManagerFactory"/>
    3. </bean>
  • JpaTransactionManager位于org.springframework.orm.jpa包中,提供对单个javax.persistence.EntityManagerFactory事务支持,用于集成JPA实现框架时的事务管理;
    Java代码
    1. <bean id="txManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    2. <property name="entityManagerFactory" ref="entityManagerFactory"/>
    3. </bean>
    4. <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
      ……
      <property name="jpaDialect" ref="jpaDialect"/>
      </bean>
      <bean id="jpaDialect" class="org.springframework.orm.jpa.vendor.HibernateJpaDialect"/>
  • HibernateTransactionManager位于org.springframework.orm.hibernate3包中,提供对单个org.hibernate.SessionFactory事务支持,用于集成Hibernate框架时的事务管理;该事务管理器只支持Hibernate3+版本,且Spring3.0+版本只支持Hibernate 3.2+版本;
    Java代码
    1. <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    2. <property name="sessionFactory" ref="sessionFactory"/>
    3. </bean>
  • 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+应用服务器事务管理器的适配器,此适配器用于对应用服务器提供的高级事务的支持。

后续文章我会补充每一个TransactionManager的用法,还有我们研发过程中经常用到的事务管理有哪些,哪些方式,以及我们在做跨事务管理时的问题

猜你喜欢

转载自zhitangrui2010.iteye.com/blog/2205657