spring中事务代理的配置

本事例定义了一个spring的事务自动代理机制,
  代理类com.tax.tm.model.dao.rp.jdbc.TcttCorpoDaoJdbcImpl中
继承了接口com.tax.tm.model.service.TcttService中以find,do,update,insert,save,add,
deleter开头的方法的事务处理,如果在执行这些方法的过程中抛出TmException异常,则spring
会自动执行事务的回滚操作,如果无TmException异常抛出,则自动提交。

<!-- tcttService dao  Definition: JDBC implementation -->
 <bean id="tcttCorpoDao"
  class="com.tax.tm.model.dao.rp.jdbc.TcttCorpoDaoJdbcImpl">
  <property name="jdbcTemplate">
   <ref bean="jdbcTemplate" />
  </property>
 </bean>

<!-- ============  transaction definition ===================== -->

 <!--    Definition transaction via AOP  -->
 
 <bean id="tcttService" parent="abstractTxDefinition">
  <property name="proxyInterfaces">
   <list>
    <value>com.tax.tm.model.service.TcttService</value>
   </list>
  </property>
  <property name="target">
   <ref bean="tcttServiceTarget" />
  </property>
 </bean>

 <!-- ========== transaction properties definition =============== -->


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

 <!-- Definition transactionAttributeSource -->
 <bean id="transactionAttributeSource"
  class="org.springframework.transaction.interceptor.NameMatchTransactionAttributeSource">
  <property name="properties">
   <props>
    <prop key="find*">
     PROPAGATION_REQUIRES_NEW,ISOLATION_READ_COMMITTED,readOnly
    </prop>
    <prop key="do*">
     PROPAGATION_REQUIRES_NEW,ISOLATION_READ_COMMITTED,-TmException
    </prop>
    <prop key="update*">
     PROPAGATION_REQUIRES_NEW,ISOLATION_READ_COMMITTED,-TmException
    </prop>
    <prop key="insert*">
     PROPAGATION_REQUIRES_NEW,ISOLATION_READ_COMMITTED,-TmException
    </prop>
    <prop key="save*">
     PROPAGATION_REQUIRES_NEW,ISOLATION_READ_COMMITTED,-TmException
    </prop>
    <prop key="add*">
     PROPAGATION_REQUIRES_NEW,ISOLATION_READ_COMMITTED,-TmException
    </prop>
    <prop key="delete*">
     PROPAGATION_REQUIRES_NEW,ISOLATION_READ_COMMITTED,-TmException
    </prop>
   </props>
  </property>
 </bean>

 <!-- Definition transaction via TransanctionProxyFactoryBean -->
 <bean id="abstractTxDefinition"
  class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
  lazy-init="true">
  <property name="transactionManager">
   <ref bean="transactionManager" />
  </property>
  <property name="transactionAttributeSource">
   <ref bean="transactionAttributeSource" />
  </property>
 </bean> 

你可能感兴趣的:(DAO,spring,bean,properties,Class,insert)