首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

浅析“署理模式”实现spring事务管理

2012-08-28 
浅析“代理模式”实现spring事务管理模拟用户调用:RealSubject 的代码:--------------------------------Dyn

浅析“代理模式”实现spring事务管理
模拟用户调用:



RealSubject 的代码:


--------------------------------
DynamicSubject 中我们可以模拟数据库操作;实现事务管理;

初级开发者会犯一个错误:直接从SPRING中配置的DATASOURCE中取得CONNECT数据库连接,这样会导致事务失效;
因为你取得的连接的AUTOCOMMIT 是TRUE ;这样事务就没法交给SPRING进行管理啦。

用代理的作用其实就是控制CONNECT数据库连接,通过代理我们可以控制数据库操作的提交和回滚;

另外早期的SPRING事务管理必须是基于接口的,当现在改变啦!为啥必须基于接口?看看这段代码:


Proxy根据InvocationHandler接口的实现类中的内容生成最后供用户调用的Subject接口 ,

newProxyInstance 中有个参数必须是接口的集合,这个就是原因



//生成RealSubject 的代理类 Subject subject = (Subject) Proxy.newProxyInstance(rsClassLoader,rsInterfaces, ds);


热点排行