<!-- jdbc transactionManager
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
-->
<jee:jndi-lookup id="dataSource" jndi-name="jdbc/****" />
<bean id="transactionManager"
class="org.springframework.transaction.jta.WebSphereUowTransactionManager"/>
<bean id="jdbcExtractor"
class="org.springframework.jdbc.support.nativejdbc.WebSphereNativeJdbcExtractor"
lazy-init="true"/>
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="*" rollback-for="Exception"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="daoPointcut" expression="execution(* *..dao.*.*(..))" />
<aop:advisor pointcut-ref="daoPointcut" advice-ref="txAdvice"
order="1" />
</aop:config>
<bean id="lobHandler" class="org.springframework.jdbc.support.lob.OracleLobHandler"
lazy-init="true">
<property name="nativeJdbcExtractor" ref="jdbcExtractor" />
</bean>
<bean id="baseDao" class="com.xyzq.common.dao.BaseDao" abstract="true">
<property name="dataSource" ref="dataSource" />
<property name="lobHandler" ref="lobHandler" />
</bean>
事务配置要想在异常出现的时候回滚,需要配置回滚的异常类:rollback-for="Exception" 或定义DataAccessException。
websphere的jta和jdbcExtractor都有专门的实现。
备忘。