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

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
分享到:
评论

相关推荐

    spring揭秘 完整带标签

    3. **声明式事务管理**:Spring提供了声明式事务管理,开发者无需编写事务管理代码,只需在配置文件或注解中声明事务边界,极大地简化了事务处理。 4. **Spring MVC**:作为Spring的一部分,Spring MVC是一个强大的...

    spring揭秘 PDF

    事务管理是企业级应用中不可或缺的部分,Spring提供了声明式事务管理,让开发者能够在不侵入业务逻辑的情况下实现事务的控制。这大大提高了代码的可读性和可维护性。 Spring Security是Spring生态系统中的安全组件...

    源码级揭秘Spring框架

    3. **AOP(Aspect-Oriented Programming,面向切面编程)**:Spring的AOP模块提供了声明式事务管理、日志记录、性能监控等功能,使得开发者可以在不修改业务代码的情况下添加横切关注点。AOP通过切面(Aspect)、...

    spring揭秘 经典

    - **AOP支持**:Spring的AOP支持允许开发者以声明式的方式实现横切关注点,如日志记录、安全控制、事务管理等,无需在业务逻辑代码中添加额外的逻辑,简化了代码的编写和维护。 - **数据访问抽象层**:Spring提供...

    spring揭密

    5. **事务管理(Transaction Management)**:Spring支持编程式和声明式事务管理,可以统一处理不同数据源的事务,增强了应用的健壮性。 6. **MVC框架**:Spring MVC是Spring提供的Web MVC框架,用于构建RESTful...

Global site tag (gtag.js) - Google Analytics