@hunter129

          天天學習,好好向上!

             :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            21 隨筆 :: 5 文章 :: 37 評論 :: 0 Trackbacks
          上次折騰了半天,終于把延時加載配置好了。可是不配置事務總是覺得怪怪的。so..決定把事務也配置好。雖然是個小項目吧^_^.
          <!-- 事務配置 -->
               
          <!-- 事務管理器 用于hibernate的事務管理器-->
                
          <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
                  
          <property name="sessionFactory">
                      
          <ref bean="sessionFactory"/>
                  
          </property>
              
          </bean>
              
              
          <!-- 事務攔截器 用于對攔截的方法開啟事務,其中指定了一些只讀事務-->
              
          <bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
                  
          <property name="transactionManager" ref="transactionManager"/>
                  
          <property name="transactionAttributes">
                      
          <props>
                          
          <prop key="*">PROPAGATION_REQUIRED,-Exception</prop>
                          
          <prop key="list*">PROPAGATION_REQUIRED,readOnly</prop>
                          
          <prop key="*list">PROPAGATION_REQUIRED,readOnly</prop>
                          
          <prop key="display*">PROPAGATION_REQUIRED,readOnly</prop>
                          
          <prop key="*display">PROPAGATION_REQUIRED,readOnly</prop>
                          
          <prop key="*view">PROPAGATION_REQUIRED,readOnly</prop>
                          
          <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
                          
          <prop key="main*">PROPAGATION_REQUIRED,readOnly</prop>
                      
          </props>
                  
          </property>
              
          </bean>
              
              
          <!-- 自動代理,配置使所有service層bean使用事務攔截器 -->
              
          <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
                  
          <property name="beanNames">
                      
          <list>
                      
          <value>*Service</value>
                      
          </list>
                  
          </property>
                  
          <property name="interceptorNames">
                      
          <list>
                          
          <value>transactionInterceptor</value>
                      
          </list>
                  
          </property>
              
          </bean>

              
          <bean class="org.springframework.transaction.interceptor.TransactionAttributeSourceAdvisor">
                  
          <property name="transactionInterceptor" ref="transactionInterceptor"/>
              
          </bean>
              
          <!-- 事務配置結束 -->

          簡單說明一下,其中是用了spring提供的BeanNameAutoProxyCreator這個自動代理服務,自動對名為XXXService的的bean使用使用攔截器開啟事務,而在transactionInterceptor則定義了事務的屬性,限定了一些只讀的事務以提搞效率。
          posted on 2008-04-21 19:08 hunter129 閱讀(276) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 离岛区| 青冈县| 东乌珠穆沁旗| 桃源县| 阿克陶县| 海安县| 茌平县| 双牌县| 綦江县| 固镇县| 东海县| 岚皋县| 阳朔县| 阳泉市| 新郑市| 天祝| 东海县| 麻阳| 韶山市| 崇礼县| 丰城市| 资中县| 镇坪县| 承德市| 杨浦区| 鹰潭市| 晴隆县| 康马县| 林西县| 唐山市| 江都市| 桐乡市| 东乌珠穆沁旗| 宁都县| 肃宁县| 石家庄市| 都兰县| 广南县| 淮南市| 嘉义县| 泸溪县|