zoukankan      html  css  js  c++  java
  • spring事务管理配置总结 (最容易理解的)

    事务代理标准写法

    <!--DAO层接口实现  -->
    <bean id="userDAO" class="net.test.dao.UserDAO">
           <property name="sessionFactory">
                  <ref local="sessionFactory" />
           </property>
    </bean>
     <!--业务层接口实现,把DAO注入到Service里面 --> 
    <bean name="userServiceTarget" class="net.test.service.UserService">
           <property name="userDAO">
                  <ref bean="userDAO" />
           </property>
    </bean>
    <!--spring代理业务层的事务管理 -->
    <bean id="userServiceProxy"  class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
           <property name="transactionManager">
                  <ref local="transactionManager" />
           </property>
           <property name="transactionAttributes">
                  <props>
                        <prop key="insert*">PROPAGATION_REQUIRED</prop>
                        <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
                  </props>
           </property>
           <property name="target">
                  <ref bean="userServiceTarget" />
           </property>
    </bean>

    事务代理简写法

    <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="insert*">PROPAGATION_REQUIRED</prop>
                    <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
                </props>
            </property>
        </bean>
        <bean id="userDAO" class="net.test.dao.UserDAO">
            <property name="sessionFactory">
                <ref local="sessionFactory" />
            </property>
        </bean>
        <bean id="userServiceProxy" parent="baseTxProxy">
            <property name="target">
                <bean class="net.test.service.UserService">
                    <property name="userDAO">
                        <ref local="userDAO" />
                    </property>
                </bean>
            </property>
        </bean>

    事务自动化代理写法

    <!-- 定义事务拦截器bean -->
        <bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
            <property name="transactionManager" ref="transactionManager"/>
            <property name="transactionAttributes">
                <props>
                    <prop key="insert*">PROPAGATION_REQUIRED</prop>
                    <prop key="update*">PROPAGATION_REQUIRED</prop>
                    <prop key="delete*">PROPAGATION_REQUIRED</prop>
                    <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
                    <prop key="query*">PROPAGATION_REQUIRED,readOnly</prop>
                    <prop key="*">PROPAGATION_REQUIRED</prop>
                </props>
            </property>
        </bean>
        <!--定义BeanNameAutoProxyCreator-->
        <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
            <property name="beanNames">
            <!--
                 所有名字以DAO,Service结尾的bean,
                将由该"bean后处理器"为其创建事务代理;
                实际上应该在业务层进行事务管理,
                这里只是举一个简单例子 
                -->
                <value>*DAO,*ServiceProxy</value>
            </property>
            <!--下面定义BeanNameAutoProxyCreator所需的事务拦截器-->
            <property name="interceptorNames">
                <list>
                <!--可以增加其他的拦截器-->
                <value>transactionInterceptor</value>
                </list>
            </property>
        </bean>
        <bean id="userDAO" class="net.test.dao.UserDAO">
            <property name="sessionFactory">
                <ref local="sessionFactory" />
            </property>
        </bean>
        <bean id="userServiceProxy" class="net.test.service.UserService">
            <property name="userDAO">
                <ref bean="userDAO" />
            </property>
        </bean>

    转自:http://www.blogjava.net/beauty9235/archive/2008/08/18/222841.html

  • 相关阅读:
    SAP OPEN UI5 Step 8: Translatable Texts
    SAP OPEN UI5 Step7 JSON Model
    SAP OPEN UI5 Step6 Modules
    SAP OPEN UI5 Step5 Controllers
    SAP OPEN UI5 Step4 Xml View
    SAP OPEN UI5 Step3 Controls
    SAP OPEN UI5 Step2 Bootstrap
    SAP OPEN UI5 Step1 环境安装和hello world
    2021php最新composer的使用攻略
    Php使用gzdeflate和ZLIB_ENCODING_DEFLATE结果gzinflate报data error
  • 原文地址:https://www.cnblogs.com/xinzhuangzi/p/4100484.html
Copyright © 2011-2022 走看看