<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 23, comments - 0, trackbacks - 0, articles - 3
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    spring事務管理配置總結

    Posted on 2008-08-18 17:05 beauty9235 閱讀(1028) 評論(0)  編輯  收藏

    作者: beauty9235  鏈接:http://beauty9235.javaeye.com/blog/229654  發表時間: 2008年05月23日

    聲明:本文系JavaEye網站發布的原創博客文章,未經作者書面許可,嚴禁任何網站轉載本文,否則必將追究法律責任!

    事務代理標準寫法

     

    <!--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>

    本文的討論也很精彩,瀏覽討論>>


    JavaEye推薦




    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲av无码久久忘忧草| 小日子的在线观看免费| 国产国产人免费视频成69大陆| 亚洲狠狠狠一区二区三区| 亚洲GV天堂GV无码男同| 中国国产高清免费av片| 一区二区无码免费视频网站| 亚洲最大视频网站| 免费人成在线视频| 亚洲AV成人无码久久WWW| 国产精品免费视频网站| 四虎成人精品国产永久免费无码| 亚洲国产成人久久精品99| 久久亚洲AV成人无码电影| 一级做a爱片特黄在线观看免费看| 亚洲国产一区视频| 亚洲日产乱码一二三区别| 在线免费观看你懂的| 亚洲一区二区三区亚瑟| 成年人网站在线免费观看| 久久综合亚洲鲁鲁五月天| 亚洲精品在线免费观看视频| 亚洲色偷偷色噜噜狠狠99| 91成人在线免费观看| 亚洲综合色丁香婷婷六月图片| 国产色爽女小说免费看| 皇色在线免费视频| 亚洲综合网美国十次| 四虎免费大片aⅴ入口| 中文在线免费看视频| 亚洲日韩乱码中文无码蜜桃臀| 免费观看大片毛片| 久久亚洲精品国产亚洲老地址| 免费看国产精品麻豆| 国产激情免费视频在线观看| 中文字幕乱码亚洲精品一区| 亚洲日本va午夜中文字幕久久| 免费精品视频在线| 亚洲精品国产专区91在线| mm1313亚洲精品无码又大又粗| 阿v视频免费在线观看|