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

          spring事務管理配置總結

          Posted on 2008-08-18 17:05 beauty9235 閱讀(1035) 評論(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推薦




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


          網站導航:
           
          主站蜘蛛池模板: 沙河市| 河间市| 化德县| 云南省| 安吉县| 开封县| 新竹市| 瑞昌市| 凌云县| 镇巴县| 丹寨县| 榆林市| 甘泉县| 涟源市| 郑州市| 云霄县| 阜平县| 石渠县| 柳州市| 阿城市| 安西县| 宜良县| 惠安县| 合水县| 清水县| 武隆县| 宁蒗| 新安县| 隆林| 昌邑市| 年辖:市辖区| 兴仁县| 绥德县| 汾阳市| 黄冈市| 衡南县| 临邑县| 会宁县| 祁门县| 临沂市| 三明市|