spring中ibatis事务配置

来源:互联网 发布:淘宝店发货地址怎么改 编辑:程序博客网 时间:2024/05/19 17:04

一、声明式


<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"

destroy-method="close">
<property name="driverClassName" value="${db.driver}" />
<property name="url" value="${db.url}" />
<property name="username" value="${db.username}" />
<property name="password" value="${db.password}" />
</bean>


<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>

<bean id="transactionTemlate" class="org.springframework.transaction.support.TransactionTemplate">
   <property name="transactionManager" ref="transactionManager"/>
</bean>


<tx:advice id="defaultTxAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="*"
isolation="READ_COMMITTED"   
                propagation="REQUIRED"   
                rollback-for="java.lang.Exception" />
</tx:attributes>
</tx:advice>


<aop:config proxy-target-class="true">
<aop:pointcut id="ao_bo"
expression="execution(* *..*BoImpl.*(..))" />
<aop:advisor pointcut-ref="ao_bo" advice-ref="defaultTxAdvice" />
</aop:config>


<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation" value="WEB-INF/sql-map-config.xml" />
<property name="dataSource" ref="dataSource" />
  <property name="sqlMapClientProperties">
<map>
<entry key="baseurl">
                    <value>com/ali/crm/sso/admin/ibatis/sqlmap</value>
</entry>
</map>
</property>
</bean>

<bean id="baseTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true">
<property name="transactionManager">
  <ref bean="transactionManager" />
  </property>
<property name="transactionAttributes">
<props>
  <prop key="*">PROPAGATION_REQUIRED</prop>
  </props>
  </property>
  </bean>

<bean id="defaultDao" class="com.ali.crm.sso.admin.dao.BaseDao" />

BaseDao需要继承SqlMapClientDaoSupport。操作时,执行getSqlMapClientTemplate().XXX(yyyyy)方法。