Spring事务处理

/ 0评 / 0

事务

编程式事务

声明式事务

类图

原理过程


实现

TransactionProxyFactoryBean

容器注入时创建TransactionInterceptor,该对象创建TransactionAttributePointcut,用来读取TransactionAttribute。
TransactionProxyFactoryBean实现了InitializingBean因此TransactionProxyFactoryBean会实现afterPropertiesSet方法,该方法实例化了一个ProxyFactory,为ProxyFactory设置通知、目标对象等并最终返回代理对象。

实现InitializingBean相当于xml中init
其它创建代理方式(自动代理)
创建

读取事务方法调用的事务配置属性
确定使用的PlatformTransactionManager
由事务创建器创建事务返回TransactionStatus来记录当前的事务状态包括已创建的事务
为TransactionInfo设置TransactionStatus
TransactionInfo与线程绑定,同时在TransactionInfo中由一个比那辆保存以前的TransactionInfo,这样就有了与事务处理得一连串TransactionInfo

事务创建结果

事务对象---------->TransactionStatus------>TransactionInfo---------->ThreadLocal
提交
回滚
DataSourceTransactionManager
doBegin获取与当前线程绑定的Connection,完成事务配置(autoCommit关掉)
HibernateTransactionManager
session

发表评论

电子邮件地址不会被公开。 必填项已用*标注