`
孤星119
  • 浏览: 124391 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Spring事务管理器分类

 
阅读更多

Spring事务管理器分类    作者原文

Spring并不直接管理事务,事实上,它是提供事务的多方选择。你能委托事务的职责给一个特定的平台实现,比如用JTA或者是别的持久机制。Spring的事务管理器可以用下表表示:
事务管理器的实例
目标
Org.springframwork.jdbc.datasource.DataSourceTransactionManager
用JDBC的 DataSource 去管理事务
Org.springframwork.orm.hibernate.HibernateTransactionManager
当持久机制是Hibernate时的事务管理器
Org.springframework.orm.jdoTransactionManager
当持久机制是JDO时的事务管理器
Org.springframework.transaction.jta.JtaTransactionManager
用JTA管理事务
Org.springframwork.orm.ojb.PersistenceBrokerTransactionManager
当持久机制是apache的OJB时的事务管理器

 

1  JDBC事务
如果你直接使用JDBC作为持久方案,DataSourceTransactionManager将会为你管理事务的边界。为了能使用DataSourceTransactionManager,我们把下面的XML加到上下文的定义中:

<bean id="transactionManager" class="org.springframework.jdbc.Datasource.DataSourceTransactionManager">
   <property name="dataSource">
        <ref bean="dataSource"/>
   </property>
</bean>

 
注意:dataSource的属性设置引用一个叫dataSource的BEAN,dataSource可能是一个javax.sql.DataSource bean,它在上下文中已经定义好了。

 

2 Hibernate事务
如果你使用Hibernate作为持久层,你将会使用HibernateTransactionManager,请在应用的上下文申明如下:

<bean id="transactionManaager" class="org.springframework.Orm.hibernate.HibernateTransactionManager">
  <property name="sessionFactory">
       <ref bean="sessionFactory"/>
  </property>
</bean>

 sessionFacoty 的属性和Hibernate的SessionFactory组合在一块儿。HibernateTransactionManager委托事务管理给一个 net.sf.hibernate.Transactioin事例,它从Hibernate的会话中获得。当一个事务成功结束时, HibernateTransactionManager会调用Transaction的commit()方法。相似的,一个失败的事务将会调用 rollback()去回滚。

 

3 JDO事务
可能你不喜欢JDBC 和Hibernate,你可以选择JDO去实现你的持久层。如果是这样的话,你可以用JdoTransctionManager,你可以在你的上下文中如下申明:

<bean id="transactionManager" Class="org.springframework.orm.jdo.JdoTransactioinManager:>
   <property name="persistenceManagerFactory">
       <ref bean="persistenceManagerFactory"/>
   </property>
</bean>

 为了使用JdoTransctionManager,你需要组合一个具有persistenceManagerFactory 属性的javax.jdo.PersistenceManagerFactory。
其实,JdoTransactionManager和事务对象一起工作,它是从JDO的持久管理器中获得。一个成功的事务会调用commit()方法,而一个失败的事务会调用rollback()方法。

 

 

4  JTA事务:
如果你上面所有的事务管理器都不符合你的需要,,或者你的应用是多资源交错的事务,那么.你可以使用JTA的事务管理器

<bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager" />

 JtaTransactionManager 委托事务管理给JTA的实现.JTA定义了一系列的标准接口;能协调事务,应用和一个或多个数据源. 在这之中, transactioinManageName属性指向JTA事务管理器. 这个事务管理器能在JNDI中找到. JtaTransactionManager, javax.transaction.UserTransaction和javax.transaction.TransactionManager对象在一起工作. 所有的事务管理委托给它们完成. 一个成功的事务将会被提交,通过调用UserTransaction.commit()方法,相反,一个失败的事务会调用UserTransaction 的rollback()方法.

 

 

 

具体各事务管理器的使用配置方式,还需查看相关的资料

 

分享到:
评论

相关推荐

    Spring事务管理失效原因汇总

    在讨论了代理模式、异常分类、方法权限后,文章还提到了Spring事务管理中事务的传播机制和隔离机制。事务的传播机制定义了事务的行为,例如是否在当前事务中执行或者创建一个新的事务。隔离机制定义了事务之间的隔离...

    Spring事务管理

    Spring事务管理是Spring框架中的重要组成部分,用于在多方法调用之间保持数据一致性,确保数据库操作的原子性、一致性、隔离性和持久性。事务管理在Java应用,尤其是企业级应用中至关重要,因为它们通常涉及复杂的...

    跟我学Spring3(9.3)Spring的事务之编程式事

    2. **Spring事务管理**:Spring提供了两种事务管理方式,即声明式事务管理和编程式事务管理。声明式事务基于AOP(面向切面编程),通过在配置文件或注解中声明事务规则,而编程式事务则是通过编程的方式来控制事务的...

    图书管理系统spring+struts+hibernate

    此外,Spring还提供事务管理,确保数据操作的一致性。 Struts是Java Web应用的一个MVC框架,负责处理HTTP请求并将其转发给相应的业务逻辑。在这个图书管理系统中,Struts定义了控制器,接收用户请求,调用模型中的...

    个人日常事务管理系统(java版)

    《个人日常事务管理系统(Java版)详解》 个人日常事务管理系统是现代生活中不可或缺的一部分,它帮助我们有效地组织和管理日常的琐碎事务,确保生活、工作有序进行。本系统采用Java编程语言开发,具备高度的安全性...

    新闻管理系统(struts+spring+hibernate)

    同时,Spring的事务管理功能确保了数据操作的一致性和完整性。 **Hibernate** 是一个流行的Java ORM(对象关系映射)框架,它简化了数据库操作,将Java对象和数据库记录关联起来。在新闻管理系统中,Hibernate用于...

    struts1+spring1+hibernater3写的新闻管理系统后台

    5. **事务管理**:Spring的Transaction Management确保了数据操作的原子性和一致性,如在多条数据库操作之间保持事务。 6. **国际化与本地化**:Struts1支持多语言,可以根据用户选择显示不同的语言版本。 7. **错误...

    档案信息管理系统 spring mvc、 hiberntate、 spring 数据库和包完整

    3. **Spring框架**:Spring是一个全面的企业级应用开发框架,提供了依赖注入(DI)、面向切面编程(AOP)、事务管理等功能。在档案信息管理系统中,Spring用于管理对象的生命周期和它们之间的依赖关系,同时提供事务...

    spring笔试题28题选择+2简答

    **知识点1:Spring事务管理的分类** - **编程式事务管理**: 通过代码显式控制事务的开始、提交或回滚。 - **声明式事务管理**: 通过配置文件或注解的方式进行事务管理,减少代码量且易于维护。 **知识点2:事务管理...

    spring用到的jar包_spring用到的jar包_已分类_

    Spring框架是Java开发中不可或缺的一部分,它为开发者提供了丰富的功能,包括依赖注入、面向切面编程、事务管理、数据访问等。在这个压缩包中,包含了Spring框架的核心组件以及与之相关的支持库,使得开发者能够快速...

    qfedu三阶段Spring的事务

    - **事务管理**:Spring管理事务时使用AOP机制,在方法执行前后自动开启和提交事务。 - **权限校验**:使用Spring Security时,其实现了基于AOP的思想。 - **日志记录**:在方法调用前后记录日志信息。 - **性能...

    毕设个人事务管理

    【个人事务管理系统】是一种专为个人用户设计的高效时间与任务管理工具,旨在帮助用户更好地组织日常生活中的各项事务,提高工作效率。系统通常包括任务创建、任务分类、日程安排、提醒服务、进度追踪以及统计分析等...

    spring框架jar包,已经分类

    AOP是Spring框架的另一个重要特性,它允许开发者将关注点分离,例如日志记录、事务管理等,这些通用功能可以被定义为“切面”,并独立于业务逻辑进行处理。在运行时,Spring会自动将这些切面织入到目标对象中,减少...

    SpringMVC+MyBatis 事务管理(实例)

    1. Spring事务管理的分类 Spring事务管理可以分为两种情况:编程式事务和声明式事务。其中,声明式事务又包括基于注解@Transactional和tx+aop的方式。 2. 编程式事务管理 编程式事务管理使用TransactionTemplate...

    Spring MVC + Mybatis+Spring实现的个人博客系统

    在本项目中,Spring作为容器管理了所有bean的生命周期,包括Spring MVC的控制器、Mybatis的SqlSessionFactory等,同时提供了事务管理功能。 **4. 数据库设计** 博客系统的数据库通常会包含用户表、博客文章表、评论...

    图书管理系统(struts+hibernate+spring)

    同时,Spring还提供了事务管理、安全控制等功能,确保系统运行的稳定性和安全性。 在实现图书管理系统时,通常会包含以下关键模块: 1. 用户模块:负责用户注册、登录、权限管理等。 2. 图书信息管理:包括图书的增...

    档案信息管理系统 spring mvc,hiberntate,spring 数据库和包完整

    同时,Spring的事务管理功能能够确保在多步骤操作中数据的一致性,避免因异常导致的数据不一致问题。 总的来说,这个档案信息管理系统充分利用了Spring MVC、Hibernate和Spring的强大功能,实现了对档案信息的高效...

    超市管理信息系统(SSH struts+spring+hibernate)

    【Spring】框架是SSH中的核心,它不仅提供了依赖注入(DI)和面向切面编程(AOP)的能力,还整合了其他多种功能,如事务管理、数据库连接池、缓存等。Spring的IoC容器管理着应用的组件,使得对象之间的依赖关系可以...

    用Struts+Hibernate+Spring三大框架开发的图书管理系统

    3. **Spring框架**:Spring是一个全面的企业级应用开发框架,提供了依赖注入(DI)、面向切面编程(AOP)、事务管理等功能。在图书管理系统中,Spring作为整个应用的“胶水”,整合了Struts和Hibernate,同时管理...

    cms -spring-mybatis框架权限管理系统

    Spring的AOP支持使得我们可以方便地进行切面编程,实现如日志、事务管理等功能。 2. **MyBatis框架**:MyBatis负责数据库交互,通过XML或注解的方式定义SQL语句,将ORM(Object-Relational Mapping,对象关系映射)...

Global site tag (gtag.js) - Google Analytics