您的位置:首页 > 编程语言 > Java开发

基于Spring和EJB的灵活的事务控制

2009-11-02 14:52 363 查看
话说在JCF框架里面可以以依赖注入的形式来选择是用EJB或者是POJO来提供后台服务,对于选用了EJB的CMT事务,再使用Spring的事务就没
有必要了,如果不要EJB那就要采用Spring的事务了。在JCF中,采用EJB形式调用链是这样的
client->delegate->EJBDelegate->SessionFacade->processor->command->dao,
事务采用session bean的CMT,采用required策略,在session
bean之后的所有的command的数据库操作都处于同一个事务中,如果发生了特定的异常(异常处理类又可以通过spring剥夺开来,针对dao或者
command等组件来做不同的异常处理)则调用setrollbackonly函数进行回滚。

如果采用spring的事务,事务的粒度得要好好考虑一下。为了统一两者的关系,使得在使用ejb和spring的事务不用更改代码。经过多翻的验证,事
务控制最好放在processor中,在command中发生的异在processor中抓住,并设置相应的errorCode,返回给
delegate。这样异常就到不了delegate,根据不同的异常给客户端传进来的state设置不同的errorCode,这样后端的错误就不会导
致客户端的停止运行,再根据state的errorCode来做不同的反应。具体的代码随后给出来:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: