首页 > 学院 > 开发设计 > 正文

如何在SPRING中实现事务暂停

2019-11-18 13:49:44
字体:
来源:转载
供稿:网友

摘要


 


SPRing框架是一个流行的基于轻量级控制反转容器的java/J2EE应用框架,尤其在数据访问和事务治理方面的能力是众所周知的。Spring的声明性事务分离可以应用到任何POJO目标对象,并且包含所有EJB基于容器治理事务中的已声明事务。后台的事务治理器支持简单的基于JDBC的事务和全功能的基于JTA的J2EE事务。


 


这篇文章具体的讨论了Spring的事务治理特性。重点是如何在使用JTA作为后台事务策略的基础上让POJO利用Spring的声明性事务,这也显示了Spring的事务服务可以无缝地与J2EE服务器(如BEA WebLogic Server的事务协调器)的事务协调器进行交互,作为EJB CMT传统事务分离方式的一个替代者。


 


POJO的声明性事务


 


作为Spring声明性事务分离方式的样例,让我们来看一下Spring的样例应用PetClinic的中心服务外观中的配置:


 


清单1:


 


<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>




发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表