Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- Other beans settings -->
<bean id="dataSourceTarget" class="my.dataaccess.DataSourceImpl" factory-method="getInstance"/>
<bean id="dataSource" class="org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy">
<property name="targetDataSource" ref="dataSourceTarget"/>
</bean>
<bean id="testTxTarget" class="my.TestTx">
<property name="dataSource" ref="dataSource"/>
</bean>
<bean id="txManager" class="org.springframework.transaction.jta.JtaTransactionManager"/>
<bean id="testTx" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager"><ref bean="txManager"/></property>
<property name="target"><ref bean="testTxTarget"/></property>
<property name="transactionAttributes">
<props>
<prop key="handleRequest">PROPAGATION_REQUIRED,-DataAccessException</prop>
</props>
</property>
</bean>
</beans>