技术开发 频道

让Spring架构减化事务配置


【IT168 技术文档】

    Spring颠覆了以前的编程模式,引入了IOC等全新的概念,广受大家的喜爱。目前大多数j2ee项目都已经采用Spring框架。Spring最大的问题是太多的配置文件,使得你不仅需要维护程序代码,还需要额外去维护相关的配置文件。最典型的就是事务配置(注:这里的“事务配置”都指“声明式事务配置”),在Spring中进行事务配置除了定义对象自身的bean外,还需要定义一个进行事务代理的bean.如果你有n个类需要引入事务,那么你就必须定义2n个bean。维护这些bean的代价是十分昂贵的,所以必须要对事务配置进行减化。如果你是基于Spring进行架构设计,那么作为一个好的架构设计师,应该把一些公共的方面进行简化,让项目的开发人员只关心项目的业务逻辑,而不要花费太多的精力去关心业务逻辑之外的太多东西。所以作为一个好的架构就应该把事务管理进行简化,让程序员花在编程之外的工作最小化。

    1. Spring声明式事务配置的几种方法
    在Spring中进行事务控制首先要选择适当的事务管理器,其次为程序选择划分事务的策略。如果只有单个事务性资源,可以从“单一资源”的PlatformTransactionManger实现当中选择一个,这些实现有:DataSourceTransactionManager,HibernateTransactionManager, JdoTransactionManager,PersistenceBrokerTransactionManager和JmsTransactionManager。根据你所采用的数据库持久化技术选择。如果你的项目运行于支持JTA的服务器,那么将选择JtaTransactionManger,将会支持多资源事务。
下表将为你选择适当的事务管理器提供参考。

技术

 

 

事务管理器

 

 

内建的事务支持

 

 

JDBC

 

 

DataSurceTransactionManager

 

 

JtaTransactionManager

 

 

JdbcTemplateorg.springframework.jdbc.object包中的所有类

 

 

IBATIS

 

 

DataSourceTransactionManager

 

 

JtaTransactionManager

 

 

SqlMapClientTemplateSqlClientTemplate

 

 

Hibernate

 

 

HibernateTransactionManager

 

 

JtaTransactionManager

 

 

HibernateTemplateHibernateInterceptor

 

 

JDO

 

 

JdoTransactionManager

 

 

JtaTransactionManager

 

 

JdoTemplateJdoInterceptor

 

 

ApacheOJB

 

 

PersistenceBrokerTransactionManager

 

 

JtaTransactionManager

 

 

PersistenceBrokerTemplate

 

 

JMS

 

 

JmsTransactionManager

 

 

JmsTemplate

 

 

0
相关文章