`
haofeng82
  • 浏览: 144490 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

spring事务,我的理解

阅读更多
Spring事务:spring 将事务管理进行抽象,具有一致的事务管理,有点如下:
一 spring 事务管理带给我们什么好处
1 为不同的事务API提供一致的编程模型:我的理解是,无论是jdbc,hibernate,jta,均可以按照一定的模型—步骤流程去进行事务处理。
2 提供了比传统事务API更简单,更易用的编程式事务管理API:我的理解,看过之后还真没感觉到编程式事务的使用简单。
3 支持声明式事务管理:我的理解是,根据定义某些AOP,可以对执行数据库操作的函数实现事务关注点的横切。需要进行配置完成。比较不错。
二 事务管理的实现方式。
1 编程方式实现事务管理
A 使用PlatformTransactionManager
这种方式过程如下,根据配置文件得到一个PlatformTransactionManager对象的实现类引用。然后得到一个代表事务的TransactionStatus对象,后面的和使用jdbc事务就差不多了。
B 得到一个PlatformTransactionManager对象后,生成TransactionTemplate的对象实例,再运行它的execute方法即可,不需要显式开启事务,但需要显式会滚。
2 声明式事务管理
A 使用TransactionProxyFactory为目标bean生成事务代理:
过程:定义一个类型为TransactionProxyFactory的bean,依赖注入TransactionManager,用来调用事务;依赖注入要管理的目标对象,以及要加入事务的方法以及事务的级别等参数。
这样在编译文件的时候,aop就会将其织入相应bean的方法代码中,以完成事务管理。
这样的缺点是需要为每一个目标bean指定一个TransactionProxyFactory,很麻烦的。
可以通过定义父模版的方式定义事物属性相同的模版
B 使用 beanName自动创建代理
使多个bean使用相同的事务代理
使用流程:定义一个事务拦截器,类别为:TransactionInterceptor, 依赖注入TransactionManager,用来调用事务;指定transactionAttribute,以标志那些方法需要进行事务注入,以及事务的级别。
定义一个BeanNameAutoProxyCreator ,指定使用的TransactionInterceptor;指定那些bean需要进行事务注入(方法已经在TransactionInterceptor中指定)
这样就会根据其定义出切点,然后进行横切,完成织入。
C 基于Java5的注释式事务代理配置:
这是通过将事务配置直接写到bean的文件里来实现的(java5的注释功能)
分享到:
评论

相关推荐

    Spring事务流程图

    本篇文章将详细解释Spring事务管理的流程,以及如何通过时序图来理解这一过程。 首先,我们来看Spring事务的流程。当一个事务开始时,通常会经历以下步骤: 1. **开启事务**:在业务方法执行前,Spring会检查是否...

    spring 事务管理的理解

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

    Spring事务管理Demo

    在Spring框架中,事务管理是核心特性之一,它允许开发者以声明式或编程式的方式处理应用中的事务。Spring事务管理的目的是确保数据的一致性和完整性,...这样可以帮助你更好地理解Spring事务管理的工作原理和实际应用。

    Spring事务管理开发必备jar包

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

    Spring事务管理的jar包

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

    spring事务操作试验

    本文将深入探讨在"spring事务操作试验"中涉及的关键知识点,并结合提供的资源进行详细阐述。 首先,Spring事务管理的核心概念是ACID(原子性、一致性、隔离性和持久性),这是所有事务系统的基础。在Spring中,事务...

    spring事务案例分析.zip

    而"studyspring"可能是源代码目录,包含了实现这些案例的Java类和配置文件,通过阅读和学习这些代码,可以更深入地理解Spring事务的运用。 总结,Spring事务管理是其核心功能之一,它简化了事务处理的复杂性,使...

    spring 事务传播 demo

    总之,“spring 事务传播 demo”将展示如何利用Spring的事务传播特性来处理复杂的业务场景,帮助开发者更好地理解和运用这一强大的工具。通过学习和实践这个示例,你将能够掌握在多层方法调用中如何优雅地管理和协调...

    Spring事务小demo

    通过这个小型的Spring+Mybatis+MySQL项目,你可以动手实践,了解如何配置和使用Spring事务,同时加深对AOP、数据库事务和框架集成的理解。记得在实际应用中根据需求调整事务策略,以确保数据的一致性和完整性。

    Spring中事务的传播属性详解

    ### Spring中事务的传播属性详解 #### 一、引言 在使用Spring框架进行应用程序开发时,事务管理是一项非常重要的特性。Spring提供了两种事务管理方式:编程式事务管理和声明式事务管理。其中,声明式事务管理因其...

    Spring 事务简单完整例子

    在IT行业中,Spring框架是Java开发中的一个关键组件,尤其在企业级应用中,它扮演着核心角色。本文将深入探讨在Spring...通过理解和实践“Spring 事务简单完整例子”,你将能更好地掌握Spring事务的核心概念和用法。

    Spring事务管理失效原因汇总

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

    spring学习事务源码

    本文将深入探讨Spring事务管理的源码,理解其背后的实现机制。 首先,Spring事务管理有两种主要模式:编程式事务管理和声明式事务管理。编程式事务管理通过调用`PlatformTransactionManager`接口提供的方法进行显式...

    实验 spring 声明事务

    实验 "Spring 声明事务" ...通过这个实验,学生可以深入理解Spring声明式事务管理的工作原理,以及如何在实际项目中配置和使用。这将有助于他们在未来开发中更好地处理事务相关的复杂问题,确保应用程序的数据一致性。

    SPRING事务机制DEMO

    Spring事务机制是Java开发中非常重要的一个概念,它在企业级应用中扮演着核心角色,确保数据的一致性和完整性。Spring提供了多种事务管理方式,包括编程式事务管理和声明式事务管理。在这篇DEMO中,我们将重点探讨...

    Spring事务传播Demo.zip

    总结来说,"Spring事务传播Demo"是一个用于学习和演示Spring事务管理和传播行为的实例,通过分析和实践这个Demo,开发者可以更好地理解和掌握Spring在处理事务时的复杂情况,提升在实际项目中的应用能力。...

    深入理解spring的事务管理机制

    Spring事务管理的核心是基于AOP(面向切面编程)来实现的。 **Spring事务的本质**实际上是依赖于底层数据库提供的事务支持。如果没有数据库层面的支持,Spring无法单独实现事务的功能。在传统的JDBC操作中,如果想...

    spring事务详解

    Spring事务详解 Spring框架的事务管理功能是Java企业级开发中的重要组成部分,它将事务管理从具体的业务逻辑和数据访问逻辑中...对于希望深入学习Spring事务管理的开发者而言,理解这些核心概念和原则是非常重要的。

    Spring事务处理-ThreadLocal的使用

    本篇文章将聚焦于Spring事务处理中ThreadLocal的使用,以及如何通过源码理解和应用这个工具。 首先,了解Spring事务管理的基本概念。在多线程环境中,事务管理是至关重要的,它负责确保一组数据库操作要么全部成功...

Global site tag (gtag.js) - Google Analytics