spring事务处理

来源:互联网 发布:docker java jar 编辑:程序博客网 时间:2024/06/05 17:10

事务的生成、提交、回滚、挂起等管理的实现往往涉及并发和数据一致性的问题,以及不同的底层数据库有不同的支持方式,因此作为应用平台的spring,对主要的事务实现做了抽象和适配。有基于配置文件方式的声明式事务处理以及基于注解方式的编程式事务处理
1. spring与事务
其使用AOP功能实现声明式事务处理,如属性配置与读取等等。通过TransactionProxyFactoryBean进行依赖注入完成切入点Pointcut已经拦截器的配置,同时向TransactionProxyFactoryBean注入事务处理器和事务处理属性,进而使用TransactionInterceptor完成对代理方法的拦截,适配的具体事务处理器包括如下:
1. 1. DataSource数据源的事务处理支持
1. 2. Hibernate数据源的事务处理支持
1. 3. JDO数据源的事务处理支持
1. 4. JPA和JTA数据源的事务处理支持
2. spring声明式事务处理
建立在AOP之上,其本质是对方法前后进行拦截,但最细粒度只能作用到方法级别,spring事务处理需要对事务处理实现进行统一封装管理以及对并发事务和事务属性的处理以及应用aop进行处理
2. 1. 读取和处理容器中事务的配置属性
TransactionInterceptor是使用AOP实现声明式事务处理的拦截器,其封装了对声明式事务处理的实现完成属性的读取;TransactionAttribute对象是对事务处理熟悉的数据抽象,比如事务的传播与隔离机制,spring也为我们提供了默认的DefaultTransationAttribute对象进行默认属性配置;TransactionAttributeSource封装了对属性的识别以及信息的读入配置通过TransactionAttribute getTransactionAttribute(Method method, Class

原创粉丝点击