Spring事务管理方式
|
|
JDBC编程事务管理 | 可以清楚地控制事务的边界,事务控制粒度细化(编程的方式) |
JDBC声明事务管理
|
事务相关API不用介入程序之中,将事务管理与实际业务代码解耦(配置xml的方式)
|
- JDBC编程事务管理
1.JDBC编程事务管理
|
实现
PlatflormTransactionManager接口
|
使用事务模版
TransactionTemplate
|
1.1使用PlatformTransactionManager管理事务大致流程
|
1>指定PlatformTransactionManager的实现类
|
2>定义事务属性TransactionDefinition
|
3>将事务定义传送给TransactionStatus
|
4>将欲进行的事务用try...catch语句封起来
|
5>如果事务出错,调用PlatformTransactionManager的rollback方法 |
Spring配置 |
|
Java代码 |
|
1.2使用
TransactionTemplate
管理事务大致流程
|
1>需要封装一个
TransactionManager
|
2>创建事务回滚类
|
3>执行TransactionManager的
execute()方法
|
示例代码:
Spring配置 |
|
Java代码
|
|
- JDBC声明事务管理
2.声明式事务管理
|
2.1使用原始的
TransactionProxyFactoryBean
|
2.2使用
tx/aop命名空间配置
|
2.3使用注解@Transactional配置 |
2.1
使用原始的TransactionProxyFactoryBean
|
1>使用
TransactionProxyFactoryBean指定要介入的事务以及其方法
|
2>创建该Bean的实例,只要执行过程中抛出异常,就会自动回滚。
|
Spring配置
|
|
Java代码
|
|
2.2使用tx/aop命名空间配置
|
1>在配置文件中引入tx、aop命名空间的声明
|
2>在Spring配置文件中定义事务类,业务类,事务管理类
|
3>在Spring配置文件中定义切面事件,指定切点事件,定义事务引用 |
4>实例化目标Bean,被拦截的方法 |
Spring配置
|
|
Java代码
|
|
2.3使用@Transactional注解配置
|
1>在配置文件中引入tx命名空间的声明
|
2>
在业务类中标注@Transaction注解
|
3>定义在Spring配置文件中定义业务类、事务管理类、事务管理驱动类 |
4>实例化目标Bean,被拦截的方法 |
Spring配置
|
|
Java代码
|
|
|