(笔记)Spring实战_事务管理(2)_选择事务管理器
2016-10-05 21:16
579 查看
Spring并不直接管理事务,而是提供了多种事务管理器,它们将事务管理的职责委托给JTA或其他持久化机制所提供的平台相关的事务实现。
为了使用事务管理器,你需要将其声明在应用程序上下文中。
1.JDBC事务
2.Hibernate事务
3.Java持久化API事务
JpaTransactionManager还支持将事务应用于简单的JDBC操作之中,这些JDBC操作所使用的DataSource与EntityManagerFactory所使用的DataSource必须是相同的。为了做到这一点,JpaTransactionManager必须装配一个JpaDialect的实现。
需要重点指出的是,JpaDialect实现必须同时支持JPA/JDBC访问。所有Spring所支持的特定厂商JpaDialect实现(EclipseLinkJpaDialect、HibernateJpaDialect、OpenJpaDialect、TopLinkJpaDialect)都提供了对JPA和JDBC混合的支持,而DefaultJpaDialect并不支持。
4.JTA事务
如果前面提到的事务管理器都不能满足你的需求或者你的事务需要跨多个事务资源(例如,两个或更多的数据库),你需要使用JtaTransactionManager。
transactionManagerName属性指明了要在JNDI上查找JTA事务管理器。
4000
事务管理器(org.framework.*) | 使用场景 |
---|---|
jdbc.datasource.DataSourceTransactionManager | 用于Spring对JDBC抽象的支持。也可用于使用iBATIS进行持久化的场景 |
orm.hibernate3.HibernateTransactionManager | 用于Hibernate3进行持久化 |
orm.jpa.JpaTransactionManager | 用于Java持久化API进行持久化 |
1.JDBC事务
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean>
2.Hibernate事务
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean>
3.Java持久化API事务
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> <property name="entityManagerFactory" ref="entityManagerFactory" /> <property name="jpaDialect" ref="jpaDialect" /> </bean>
JpaTransactionManager还支持将事务应用于简单的JDBC操作之中,这些JDBC操作所使用的DataSource与EntityManagerFactory所使用的DataSource必须是相同的。为了做到这一点,JpaTransactionManager必须装配一个JpaDialect的实现。
需要重点指出的是,JpaDialect实现必须同时支持JPA/JDBC访问。所有Spring所支持的特定厂商JpaDialect实现(EclipseLinkJpaDialect、HibernateJpaDialect、OpenJpaDialect、TopLinkJpaDialect)都提供了对JPA和JDBC混合的支持,而DefaultJpaDialect并不支持。
4.JTA事务
如果前面提到的事务管理器都不能满足你的需求或者你的事务需要跨多个事务资源(例如,两个或更多的数据库),你需要使用JtaTransactionManager。
<bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager"> <property name="transactionManagerName" value="java:/TransactionManager" /> </bean>
transactionManagerName属性指明了要在JNDI上查找JTA事务管理器。
4000
相关文章推荐
- Spring实战笔记5---事务管理
- (笔记)Spring实战_事务管理(1)_理解事务
- (笔记)Spring实战_事务管理(4)_声明式事务
- (笔记)Spring实战_事务管理(3)_在Spring中的编码事务
- Spring注解方式管理事务以及事务传播行为Propagation(视频笔记23)
- Spring学习笔记(九)-----事务管理(宣告式事务管理)
- Spring事务管理学习笔记
- Spring的声明式事务管理(李刚 轻量级javaEE 企业应用实战-三大框架整合开发)
- spring管理事务异常时事务未回滚问题笔记
- spring笔记--事务管理之声明式事务
- Spring事务管理笔记
- 学习《spring 3.x企业应用开发实战》之Spring的事务管理
- 【Spring实战】—— 16 基于JDBC持久化的事务管理
- 【Spring实战】—— 16 基于JDBC持久化的事务管理
- 学习笔记---------------------spring2.5+jdbc(jdbctemplate)+事务管理
- 新手程序员笔记-Spring-全面分析Spring 的编程式事务管理及声明式事务管理【转】
- Spring 注解方式进行事务管理的用法介绍详解【Java学习笔记】
- spring学习笔记(7)——spring事务管理方式
- Spring学习笔记----事务管理
- Spring 事务管理笔记