Spring 声明式事务处理

来源:互联网 发布:数据安全管理的概念 编辑:程序博客网 时间:2024/05/20 22:37
1、原理
1、基于的原理是aop
2、标题分析
这个标题可以分解为这几个词:
声明式    
程序员对目标方法进行声明
事务处理
spring容器负责处理事务
3、说明:
1、目的
这个技术的目的是让程序员不再关注事务,而只关注做自己的事情
2、利用AOP可以达到这个目的
1、程序员做数据库的操作
2、让spring容器做事务
2、步骤:
1、写java类,dao层和service层
2、写spring的配置文件
1、引入sessionFactory
2、引入事务管理器
3、引入AOP的配置
4、配置AOP
5、配置事务通知
3、spring中处理事务的框架
1、顶级接口
PlatformTransactionManager
getTransaction
commit
rollback
2、抽象类
AbstractPlatformTransactionManager
对commit、rollback方法进行了实现
3、具体类
DataSourceTransactionManager,HibernateTransactionManager等
4、说明:
在spring内部,都是面向接口编程(这点从HbiernateTemplate中可以体会),而接口的实现类是需要通过spring配置文件注入进去的,所以任何一个数据库
操作框架只要知道spring的结构,很容易整合到spring容器中
4、spring声明式事务处理的缺点
从原理上可以看出,如果一个类的方法中有数据库的操作,如果该类的事务处理想交给spring容器来做,那么必须满足:
1、把该类放入到spring容器中
2、为该类生成代理对象
如果存在这样的情况:
例如在jbpm工作流中,有些类是由jbpm内部调用的,但是这些类的方法中如果需要事务呢?答案是用spring容器做事务做不到
5、关于声明式事务处理的session
由于必须保证数据库操作的session和事务的session是同一个session,所以session必须由当前线程产生
原创粉丝点击