`
买切糕的猴子
  • 浏览: 23459 次
社区版块
存档分类
最新评论

Spring架构揭秘-声明式事务

阅读更多
1、声明式事务原理
2、Spring事务模块结构及解析
 
一、声明式事务原理
     在日常的开发中经常会使用到事务,比如在新增纪录的方法里,通常会先开启事务,然后再提交事务,遇到异常就回滚事务,事务代码都是模版型的,写起来很烦,但是又不能不写。这正好符合AOP的应用范围,Spring天然的支持AOP,于是伟大的声明式事务就这么诞生了。通过XML或注解的方式配置事务,标明在哪个类,那个方法需要使用事务即可。
二、Spring事务模块结构及解析
     Spring对事务管理做了高级抽象,分为3个部分,分别是事务定义,事务状态,事务管理器。
     Spring通过解析XML和Annotation里事务的配置产生TransactionDefinition对象供PlatformTransactionManager使用,同时TransactionStatus封装了事务的状态信息。TransactionDefinition中封装了事务隔离级别和事务传播特性的属性。
 
Spring对事务管理做了高度的抽象,这样就给不同的数据层框架提供了相同的管理方式,从PlatformTransactionSynchronizeManager的子类图中可以看出,Spring默认提供几种常见数据层框架的事务管理实现类。
DataSourceTransactionManager:使用JDBC或ibates等使用Datasource数据源持久化时,使用的事务管理器
HibernateTransactionManager:使用Hibernate时使用的事务管理器,对于不同版本的Hibernate有不同的管理器
JdoTransactionManager:使用JDO进行持久化时使用的事务管理器
JpaTransactionManager:使用JPA进行持久化时使用的事务管理器
JtaTransactioinManager:具有多个数据源的全局事务使用的事务管理器
 
     Spring将JDBC的Connection、Session等都统称为资源,这些资源都是在同一时刻不能线程共享的,为了让Dao,Service类做到Singleton,Spring提供了事务同步管理器,内部通过TrheadLocal为每一个线程提供资源副本,同时维护事务属性和运行状态信息,在Spring的事务管理机制中有着地基级别的作用,无论是声明式事务还是编程式编程都离不开他。下面就看看他的结构
 

 

 
  • 大小: 34.1 KB
  • 大小: 64.6 KB
  • 大小: 65.9 KB
  • 大小: 20.5 KB
0
0
分享到:
评论

相关推荐

    Spring5 框架 ---- 事务操作 ---- 代码

    Spring5 框架 ---- 事务操作 ---- 代码 Spring5 框架 ---- 事务操作 ---- 代码 Spring5 框架 ---- 事务操作 ---- 代码 Spring5 框架 ---- 事务操作 ---- 代码 Spring5 框架 ---- 事务操作 ---- 代码 Spring5 框架 --...

    Spring与Hibernate集成---声明式事务

    本文将深入探讨如何将Spring与Hibernate进行集成,并重点介绍声明式事务的配置与使用。 Spring框架是一个全面的企业级应用开发框架,它提供依赖注入(DI)和面向切面编程(AOP)等功能,简化了Java应用的复杂性。另...

    spring学习笔记(十六)-声明式事务的例子

    在Spring框架中,声明式事务管理是其核心特性之一,它允许开发者通过配置来控制事务的行为,而无需在代码中显式地管理事务的开始、提交、回滚等操作。这种方式使得事务管理更加灵活,也使得代码更加简洁,易于维护。...

    spring-tx-5.0.0.0.RELEASE.jar_java开发_spring-tx-5.0.0_

    声明式事务管理是Spring的一个强大特性,允许开发者通过简单的注解或XML配置来控制事务边界,从而极大地简化了事务处理代码。Spring TX 5.0.0.0.RELEASE.jar作为这个版本的发布,包含了所有必要的类和资源,使得...

    Spring学习笔记之九--声明式事务

    本篇文章将深入探讨Spring框架的一个关键特性——声明式事务管理。通过声明式事务,开发者可以避免手动处理事务的繁琐工作,提高代码的可读性和可维护性。 首先,我们了解什么是事务。在数据库操作中,事务是一系列...

    spring导入eclipse时少的spring-cglib-repack-3.2.4.jar和spring-objenesis-repack-2.4.jar

    然而,有时候在导入Spring项目时,可能会遇到一些问题,例如标题中提到的"spring-cglib-repack-3.2.4.jar"和"spring-objenesis-repack-2.4.jar"这两个jar包的缺失。这些jar包对于Spring框架的正常运行至关重要,因为...

    spring-context-3.2.0 spring-core-3.2.0 等齐全的Spring jar包

    10. **spring-tx-3.2.0.RELEASE.jar**:事务管理模块提供了编程和声明式的事务管理,支持JTA(Java Transaction API)和本地事务。这使得在Spring应用中管理事务变得容易。 这组Spring 3.2.0库的完整集合,为开发者...

    spring-framework-1.0-with-dependencies.zip

    5. **spring-tx**:支持声明式事务管理,使得事务管理可以在不修改业务代码的情况下进行。 6. **spring-web**和**spring-webmvc**:这两个模块是Spring与Web应用的接口,前者提供HTTP Servlet的集成,后者则是...

    spring+mybatis的声明式事务

    本文将深入探讨"spring+mybatis的声明式事务"这一主题,帮助你理解并掌握这一核心技术。 1. **Spring事务管理** Spring提供两种事务管理方式:编程式事务管理和声明式事务管理。编程式事务管理通过编写代码来控制...

    spring-framework-4.1.6.RELEASE.rar

    spring-aop-4.1.6.RELEASE.jar spring-aspects-4.1.6.RELEASE.jar spring-beans-4.1.6.RELEASE.jar spring-context-4.1.6.RELEASE.jar spring-context-support-4.1.6.RELEASE.jar spring-core-4.1.6.RELEASE.jar ...

    spring-beans-3.0.xsd

    首先,`spring-beans-3.0.xsd`是Spring 3.0版本中的beans配置文件,它定义了一系列元素和属性,允许开发者声明、配置和管理bean。例如,`<bean>`元素是配置中最基础的部分,用于定义一个bean实例,包括其类名、初始...

    spring 3.2.4.RELEASE jar包

    spring-context-3.2.4.RELEASE.jar spring-core-3.2.4.RELEASE.jar spring-beans-3.2.4.RELEASE.jar spring-test-3.2.4.RELEASE.jar spring-web-3.2.4.RELEASE.jar spring-aop-3.2.4.RELEASE.jar spring-webmvc-...

    官方原版spring-framework-4.3.18.RELEASE.zip

    "spring-framework-4.3.18.RELEASE-schema.zip"文件提供了Spring配置文件所使用的XML架构定义。这些架构文件定义了Spring XML配置中可以使用的元素和属性,帮助开发者编写正确的配置,确保XML配置文件的语法正确。 ...

    spring4源码所需要的spring-objenesis-repack-2.1.jar,spring-cglib-repack-3.1.jar

    在Spring框架中,`spring-objenesis-repack-2.1.jar`和`spring-cglib-repack-3.1.jar`是两个关键的依赖库,它们在Spring的内部工作原理和功能扩展中扮演着重要角色。让我们深入探讨这两个库以及它们与Spring 4的关系...

    Spring使用XML配置声明式事务

    在Spring框架中,声明式事务管理是实现事务处理的一种高效且灵活的方式,它允许开发者通过XML配置或注解来定义事务边界,而无需在业务逻辑代码中显式地调用开始、提交或回滚事务的方法。这篇博文"Spring使用XML配置...

    spring-data-commons-1.8.0.RELEASE

    spring data jpa的包。spring-data-commons-1.8.0.RELEASE.jar

    使用Spring的声明式事务----Annotation注解方式

    在Spring框架中,声明式事务管理是其核心特性之一,它允许开发者无需手动处理事务的开始、提交、回滚等操作,而是通过配置或者注解的方式进行声明,从而简化了事务管理的复杂性。本篇文章将深入探讨如何使用Spring的...

    使用Spring的声明式事务----AOP方式

    在Spring框架中,声明式事务管理是通过AOP(面向切面编程)实现的,它为开发者提供了方便、高效且灵活的事务管理机制。本文将深入探讨如何利用Spring的声明式事务来处理业务操作中的数据一致性问题,以及相关源码...

    spring-data-redis 1.7.6

    10. **源码分析**:`spring-data-redis-1.7.6.RELEASE-sources.jar`包含了源码,对于开发者来说,这是一个宝贵的资源,可以深入理解其内部实现,提高解决问题的能力。 总的来说,Spring Data Redis 1.7.6版本提供了...

Global site tag (gtag.js) - Google Analytics