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的事务管理机制中有着地基级别的作用,无论是声明式事务还是编程式编程都离不开他。下面就看看他的结构

相关推荐
3. **声明式事务管理**:Spring提供了声明式事务管理,开发者无需编写事务管理代码,只需在配置文件或注解中声明事务边界,极大地简化了事务处理。 4. **Spring MVC**:作为Spring的一部分,Spring MVC是一个强大的...
事务管理是企业级应用中不可或缺的部分,Spring提供了声明式事务管理,让开发者能够在不侵入业务逻辑的情况下实现事务的控制。这大大提高了代码的可读性和可维护性。 Spring Security是Spring生态系统中的安全组件...
3. **AOP(Aspect-Oriented Programming,面向切面编程)**:Spring的AOP模块提供了声明式事务管理、日志记录、性能监控等功能,使得开发者可以在不修改业务代码的情况下添加横切关注点。AOP通过切面(Aspect)、...
- **AOP支持**:Spring的AOP支持允许开发者以声明式的方式实现横切关注点,如日志记录、安全控制、事务管理等,无需在业务逻辑代码中添加额外的逻辑,简化了代码的编写和维护。 - **数据访问抽象层**:Spring提供...
5. **事务管理(Transaction Management)**:Spring支持编程式和声明式事务管理,可以统一处理不同数据源的事务,增强了应用的健壮性。 6. **MVC框架**:Spring MVC是Spring提供的Web MVC框架,用于构建RESTful...