`
ziwuzu
  • 浏览: 52866 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论

Spring事务管理

阅读更多

spring的事务管理:

1. AbstractPlatformTransationManager定义了事务操作的基本流程:

    获得事务(判断当前是否有事务,事务传播是否合法)

    开始事务

    提交事务

    回滚事务

    事务结束后清理资源,释放连接

 

2.    Spring抽象出了Transaction代表事务,执行事务的提交,回滚等操作,定义了TransactionStatus代表事务的状态,设置事务的属性,为程序员设置事务回滚提供了接口。利用静态类和threadLocal对象存储线程独立的Transaction,Datasource信息(同一事务中对同一数据源是一个连接)

 

3. 对单数据源事务,spring不仅抽象出事务,还插手了连接的获得与释放,如DataSourceTransactionManager,HibernateTransactionManager,IBATIS,JPA等

 

4. 对分布式事务(JTA,用XA协议实现),spring的主要工作是抽象出统一的调用接口JTATransactionManager,连接管理还是由分布式事务管理器自己实现。如Jboss,Jotm,atomiks等。

 

5. 可以采用编程式事务,利用spring提供的TransactionTemplate或TransactionManager。

    也可以利用AOP,配置实现事务管理。

 

6. 对事务的传播级别,一般为required。

     开始事务时:此时如果有事务,则不新生成事务,而且返回一个TransactionStatus,但isNewTransaction为false,Transaction是同一个。

    提交事务时:如果transactionStatus的isNewTransaction为false,则不提交。

    回滚事务时:如果transactionStatusisNewTransaction为false,则设置rollbackOny为true。

 

7. 如果事务的传播级别为,nested,则对单数据源事务通过调用jdbc3.0的savepoint api实现嵌套事务,分布式事务不是。

 

8. 如果事务的传播级别为required_new,则会新起一个事务,对DataSoureTransactionManager,则新起一个连接,同时将原事务挂起,将原事务资源放到新起的事务的suspendResource属性中,如果新事务提交或者回滚,则在结束时调用resume方法将原事务还原。

分享到:
评论

相关推荐

    Spring事务管理Demo

    Spring事务管理的目的是确保数据的一致性和完整性,尤其是在多操作、多资源的环境中。本Demo将深入探讨Spring如何实现事务的管理。 首先,Spring提供了两种主要的事务管理方式:编程式事务管理和声明式事务管理。 ...

    spring事务管理

    ### Spring事务管理详解 #### 一、事务管理基础概念 在深入探讨Spring事务管理之前,我们需要先理解什么是事务。事务可以被定义为一系列的操作集合,这些操作作为一个整体被提交或回滚。简单来说,事务就是一个不...

    Spring事务管理开发必备jar包

    本资源包提供了进行Spring事务管理开发所需的所有关键库,包括框架基础、核心组件、AOP(面向切面编程)支持、日志处理、编译工具以及与数据库交互的相关jar包。下面将对这些知识点进行详细解释: 1. **Spring框架*...

    spring 事务管理的理解

    Spring 框架是Java开发中...理解并熟练掌握Spring事务管理,对于提升应用程序的稳定性和可靠性至关重要。在实际开发中,结合声明式事务管理、事务传播行为、隔离级别和回滚规则,可以有效地确保数据的完整性和一致性。

    Spring事务管理.pdf

    Spring事务管理.pdf 1.资料 2.本地事务与分布式事务 3.编程式模型 4.宣告式模型

    Synchronized锁在Spring事务管理下线程不安全

    Synchronized锁在Spring事务管理下,导致线程不安全。

    Spring事务管理的jar包

    本篇将深入探讨Spring事务管理的核心概念、工作原理以及如何使用`spring-tx-3.2.0.RELEASE.jar`这个jar包。 首先,我们需要理解什么是事务。在数据库系统中,事务是一组操作,这些操作被视为一个整体,要么全部完成...

    Spring事务管理失效原因汇总

    标题“Spring事务管理失效原因汇总”指出了本文的核心内容是分析在使用Spring框架进行事务管理时可能遇到的问题及其原因。描述部分进一步说明了事务失效的后果往往不明显,容易在测试环节被忽略,但在生产环境中出现...

    spring事务管理5种方法

    本篇文章将深入探讨Spring事务管理的五种方法,旨在帮助开发者更好地理解和运用这一核心特性。 首先,我们来了解什么是事务。在数据库操作中,事务是一组逻辑操作,这些操作要么全部成功,要么全部失败,确保数据的...

    Spring事务管理4种方式

    本文将详细介绍Spring事务管理的四种方式:编程式事务管理、声明式事务管理、PlatformTransactionManager接口以及TransactionTemplate。 1. **编程式事务管理**:这是一种手动控制事务的方式,通过在代码中调用`...

    详细介绍Spring事务管理

    ### Spring事务管理详解 #### 一、Spring事务管理的重要性及必要性 在现代软件开发中,事务管理是一项至关重要的技术,特别是在涉及数据库操作时。事务能够确保一系列操作要么全部成功,要么全部失败,这对于保持...

    spring事务管理.rar

    Spring事务管理是Spring框架的核心特性之一,它提供了一种强大且灵活的方式来管理应用程序中的事务边界。在企业级Java应用中,事务处理是确保数据一致性、完整性和可靠性的关键部分。本篇文章将深入探讨Spring的事务...

    spring事务管理.doc

    总的来说,Spring事务管理提供了一种灵活、强大的方式来处理应用程序中的事务,无论是在简单还是复杂的事务场景下,都能有效保证数据的一致性和完整性。通过声明式事务管理,开发者可以将关注点从事务细节中解脱出来...

    Spring事务管理配置文件问题排查

    当出现像描述中那样的问题——SQL语句执行出错但事务未回滚时,我们需要深入理解Spring事务管理的配置和机制。以下是一些关键知识点: 1. **Spring事务管理类型**: - **编程式事务管理**:通过`...

    spring事务管理几种方式代码实例

    spring事务管理几种方式代码实例:涉及编程式事务,声明式事务之拦截器代理方式、AOP切面通知方式、AspectJ注解方式,通过不同方式实例代码展现,总结spring事务管理的一般规律,从宏观上加深理解spring事务管理特性...

    Spring事务管理和SpringJDBC思维导图

    在思维导图"Spring Transaction.twd"中,可能包含了Spring事务管理的各个概念和它们之间的关系,如事务的ACID属性(原子性、一致性、隔离性和持久性),事务管理器,以及声明式和编程式事务管理的实现方式。...

Global site tag (gtag.js) - Google Analytics