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

话说在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来做不同的反应。具体的代码随后给出来:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值