spring事务模板使用



1.配置spring事务模板bean

    <!--spring 模板事务-->
    <bean id="transactionProxy" abstract="true"
        class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
        <property name="transactionManager" ref="TransactionManager" />
        <property name="transactionAttributes">
            <props>
                *****
            </props>
        </property>
    </bean>

2.事务服务bean的配置

  <bean id="xxxxDAO" class="com.xxxx.xxxxDAOImpl">
    <property name="sessionFactory" ref="sessionFactory" />
  </bean>
  <bean id="xxxxServiceTarget" class="com.xxxx.xxxxServiceImpl" parent="service">
    <property name="xxxxDAO" ref="xxxxDAO" />
  </bean>
  <bean id="xxxxService" parent="transactionProxy">
    <property name="target" ref="xxxxServiceTarget" />
  </bean>

使用占位符配置bean的方法:

    <bean id="placeholderConfig"
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>
                    ***.properties
                </value>
                <value>
                   ***.properties
                </value>
            </list>
        </property>
    </bean>


3.事物根据方法名默认绑定

<!-- 配置jdbc模版 -->
 <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
  <property name="dataSource" ref="dataSource" /> <!--连库信息-->
 </bean>
 <!-- 事务管理配置 如果使用orm框架,则替换为相应的事务管理器 -->
 <bean id="transactionManager"
  class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  <property name="dataSource" ref="dataSource" />
 </bean>

 <!-- 通过AOP配置提供事务增强,让service包下所有Bean的所有方法拥有事务 proxy-target-class="true" 强制使用CGLIB -->
 <aop:config>
  <aop:pointcut id="serviceMethods"
   expression="execution(* com.navict.wxcc.service..*.*(..))" />
  <aop:advisor pointcut-ref="serviceMethods" advice-ref="txAdvice" />
 </aop:config>

 <tx:advice id="txAdvice" transaction-manager="transactionManager">
  <tx:attributes>
   <tx:method name="add*" propagation="REQUIRED" />
   <tx:method name="edit*" propagation="REQUIRED" />
   <tx:method name="remove*" propagation="REQUIRED" />
   <tx:method name="save*" propagation="REQUIRED" />
   <tx:method name="update*" propagation="REQUIRED" />
   <tx:method name="delete*" propagation="REQUIRED" />
   <tx:method name="insert*" propagation="REQUIRED" />
   <tx:method name="create*" propagation="REQUIRED" />
   <tx:method name="modify*" propagation="REQUIRED" />
   <tx:method name="point" propagation="REQUIRES_NEW" />
   <tx:method name="task" propagation="NEVER" />
   <tx:method name="find*" propagation="SUPPORTS" read-only="true" />
   <tx:method name="get*" propagation="SUPPORTS" read-only="true" />
   <tx:method name="query*" propagation="SUPPORTS" read-only="true" />
   <tx:method name="load*" propagation="SUPPORTS" read-only="true" />
   <tx:method name="select*" propagation="SUPPORTS" read-only="true" />
   <tx:method name="*" />
  </tx:attributes>
 </tx:advice>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值