zoukankan      html  css  js  c++  java
  • 2015第24周二Spring事务2

    今天继续深入学习SPring事务,发现网上很多文章都是很相似的转载没多少价值,就觉得更有必要把这个主题深入下去,先是摘录那些对自己有用的观点,后期再结合源码进行全面的整理。

    Spring提供了许多内置事务管理器实现,常用的有以下几种: 

    • DataSourceTransactionManager:位于org.springframework.jdbc.datasource包中,数据源事务管理器,提供对单个javax.sql.DataSource事务管理,用于Spring JDBC抽象框架、iBATIS框架的事务管理;
    • HibernateTransactionManager:位于org.springframework.orm.hibernate3或者hibernate4包中,提供对单个org.hibernate.SessionFactory事务支持,用于集成Hibernate框架时的事务管理;该事务管理器只支持Hibernate3+版本,且Spring3.0+版本只支持Hibernate 3.2+版本;
    • JtaTransactionManager:位于org.springframework.transaction.jta包中,提供对分布式事务管理的支持,并将事务管理委托给Java EE应用服务器事务管理器;
    • 基于 TransactionDefinition、PlatformTransactionManager、TransactionStatus 编程式事务管理是 Spring 提供的最原始的方式,通常我们不会这么写,但是了解这种方式对理解 Spring 事务管理的本质有很大作用。
    • 基于 TransactionTemplate 的编程式事务管理是对上一种方式的封装,使得编码更简单、清晰。
    • 基于 TransactionInterceptor 的声明式事务是 Spring 声明式事务的基础,通常也不建议使用这种方式,但是与前面一样,了解这种方式对理解 Spring 声明式事务有很大作用。
    • 基于 TransactionProxyFactoryBean 的声明式事务是上中方式的改进版本,简化的配置文件的书写,这是 Spring 早期推荐的声明式事务管理方式,但是在 Spring 2.0 中已经不推荐了。
    • 基于 <tx> 和 <aop> 命名空间的声明式事务管理是目前推荐的方式,其最大特点是与 Spring AOP 结合紧密,可以充分利用切点表达式的强大支持,使得管理事务更加灵活。
    • 基于 @Transactional 的方式将声明式事务管理简化到了极致。开发人员只需在配置文件中加上一行启用相关后处理 Bean 的配置,然后在需要实施事务管理的方法或者类上使用 @Transactional 指定事务规则即可实现事务管理,而且功能也不必其他方式逊色。

    摘自:http://www.ibm.com/developerworks/cn/education/opensource/os-cn-spring-trans/

  • 相关阅读:
    HDU-2072-单词数(字典树)
    HDU-1251-统计难题(字典树)
    POJ-3630-Phone List(字典树)
    Acwing-204-表达整数的奇怪方式(扩展中国剩余定理)
    Acwing-203-同余方程(扩展欧几里得)
    Acwing-202-最幸运的数字(同余, 欧拉定理)
    Acwing-201-可见的点(数学, 欧拉函数)
    sql2014 新建用户并登陆
    sql修改约束语法练习
    java中static作用详解
  • 原文地址:https://www.cnblogs.com/doit8791/p/4564871.html
Copyright © 2011-2022 走看看