快速业务通道

在Spring中实现事务挂起 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17

在Spring中实现事务挂起

时间:2011-04-23

Spring Framework是一个流行的Java/J2EE应用框架,它构建于一个轻量级的反向控制(Inversion-of-Control,QoC)模式的容器的基础之上,以其数据访问和事务管理能力而著称。Spring的声明性事务划分适用于任何的POJO(pure old java object或plain ordinary Java object,无格式普通Java对象)目标对象,其声明性事务如同EJB容器托管事务(Container-Managed Transaction,CMT)一样完善。后端事务管理器的选择包括简单的基于JDBC的事务和完善的J2EE事务(借助于JTA策略)。

本文详细讨论了Spring的事务管理功能。重点介绍了如何以JTA作为后端事务策略,使用Spring的针对POJO的声明性事务。本文说明了Spring的事务服务可以与J2EE服务器的事务协调程序(如BEA WebLogic Server的事务协调程序)进行无缝交互,实际上已经成为EJB CMT的传统事务划分方式的替代方案。

针对POJO的声明性事务

为了说明Spring的声明性事务划分方式,让我们来看看Spring的PetClinic示例应用程序的中央服务外观(facade)的配置:

<bean id="dataSource"    class="org.springframework.jndi.JndiObjectFactoryBean">    <property name="jndiName">    <value>java:comp/env/jdbc/petclinic</value>    </property>    </bean>    <bean id="transactionManager"    class="org.springframework.transaction.jta.JtaTransactionManager"/>    <bean id="clinicTarget"    class="org.springframework.samples.petclinic.jdbc.JdbcClinic">    <property name="dataSource"><ref bean="dataSource"/></property>    </bean>    <bean id="clinic"    class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">    <property name="transactionManager"><ref bean="transactionManager"/></property>    <property name="target"><ref bean="clinicTarget"/></property>    <property name="transactionAttributes">    <props>    <prop key="load*">PROPAGATION_REQUIRED,readOnly</prop>    <prop key="store*">PROPAGATION_REQUIRED</prop>    </props>    </property>    </bean>

它遵从了Spring的标准XMLBean定义格式。它定义了:

一个DataSource引用,指向一个JNDI位置--这将从J2EE服务器托管的JNDI环境中获取指定的DataSource。

一个PlatformTransactionManage实现--在本例中,该实现指定Spring的JtaTransactionManager,它委托给J2EE服务器的事务协调程序。

应用程序服务实现--这是一个简单的POJO,它封装了业务和数据访问逻辑。它实现应用程序的Clinic服务接口。

一个应用程序服务的事务代理--该代理定义了目标服务的事务属性,提供具体的方法命名模式,并创建相应的事务。对于实际的事务管理,代理指向PlatformTransactionManager实现。

在Spring中实现事务挂起(2)

时间:2011-04-23

注意:Spring还通过通用属性(Commons Attribute)或者J2SE 5.0的注释(annotation),支持一种自动代理机制和对源级(source-level)元数据的使用,作为显示代理定义的替代方案。这些替代方案不在本文的讨论范围之内;其详细资料请参考Spring说

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号