基于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来做不同的反应。具体的代码随后给出来:
有必要了,如果不要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来做不同的反应。具体的代码随后给出来:
相关文章推荐
- JavaEE--SSH--spring-基于xml的声明式事务控制演示
- spring 基于AOP事务控制实现的基础
- 28Spring_的事务管理_银行转账业务加上事务控制_基于注解进行声明式事务管理
- 27Spring_的事务管理_银行转账业务加上事务控制_基于tx.aop进行声明式事务管理
- 基于Spring的轻量级Web Service事务管理框架及其实现
- spring事物配置,声明式事务管理和基于@Transactional注解的使用
- spring 基于注解的声明式事务注解配置和 aop xml配置优先级
- Spring循环体内的事务控制
- 【Spring实战】—— 16 基于JDBC持久化的事务管理
- spring事物配置,声明式事务管理和基于@Transactional注解的使用
- spring事物配置,声明式事务管理和基于@Transactional注解的使用
- spring事物配置,声明式事务管理和基于@Transactional注解的使用
- spring事物配置,声明式事务管理和基于@Transactional注解的使用
- spring对事务的控制 AOP
- spring 2.5整合jdbc进行数据库操作和注解事务控制
- Spring 事务控制的几个文章
- spring-hibernate事务控制的4中方法
- 基于Spring cloud ribbon实现多版本控制
- Spring事务控制(txManager)
- spring中service调用service的事务控制