Srping 中事物管理的配置

    先说一下spring 中事物管理的机制, 它用的是aop 的思想, 也就是说把 事务管理与业务逻辑分开,

 

  <bean id="transactionManager"
       class="org.springframework.jdbc.datasource.DataSourceTransactionManager" >
         <property name="dataSource">
          <ref local="dataSource"/>
   </property> 
 </bean>       
    <bean id="userDao"  class="com.Integrate.DaoImp.UserDaoImp">
     <property name="dataSource">
      <ref local="dataSource"/>
  </property>
 </bean>
 
 <bean id="userDaoProxy"
       class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
        <property name="transactionManager">
         <ref local="transactionManager"/>
   </property>
   <property  name="target">
    <ref local="userDao"/>
   </property>
     <property name="transactionAttributes">
     <props>
     <prop key="insert*">PROPAGATION_REQUIRED--Exception</prop>
     <prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
     </props>
     </property> 
 </bean>         
  这就是对UserDao 的一个事物代理, 现在对各个参数做一个说明:

target 是说明这个代理是针对那个类的代理, transactionAttributes是说明   如: key="insert*"表明以insert 开头的函数,  --Exception 是指出现exception就回滚。

 

一种比较简单的方法是:

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

    <bean id="itemService" parent="baseTxProxy">
        <property name="target">
            <bean class="ItemServiceImpl" autowire="byName"/>
        </property>
    </bean>

这样也是可以的, lazy-init="true" 也可以写成 abstract="true"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值