摘要
SPRing框架是一個(gè)流行的基于輕量級(jí)控制反轉(zhuǎn)容器的java/J2EE應(yīng)用框架,尤其在數(shù)據(jù)訪問和事務(wù)治理方面的能力是眾所周知的。Spring的聲明性事務(wù)分離可以應(yīng)用到任何POJO目標(biāo)對(duì)象,并且包含所有EJB基于容器治理事務(wù)中的已聲明事務(wù)。后臺(tái)的事務(wù)治理器支持簡單的基于JDBC的事務(wù)和全功能的基于JTA的J2EE事務(wù)。
這篇文章具體的討論了Spring的事務(wù)治理特性。重點(diǎn)是如何在使用JTA作為后臺(tái)事務(wù)策略的基礎(chǔ)上讓POJO利用Spring的聲明性事務(wù),這也顯示了Spring的事務(wù)服務(wù)可以無縫地與J2EE服務(wù)器(如BEA WebLogic Server的事務(wù)協(xié)調(diào)器)的事務(wù)協(xié)調(diào)器進(jìn)行交互,作為EJB CMT傳統(tǒng)事務(wù)分離方式的一個(gè)替代者。
POJO的聲明性事務(wù)
作為Spring聲明性事務(wù)分離方式的樣例,讓我們來看一下Spring的樣例應(yīng)用PetClinic的中心服務(wù)外觀中的配置:
清單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>
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注