隨筆-9  評論-168  文章-266  trackbacks-0

          Spring 2.0 事務處理方式: http://www.aygfsteel.com/algz/articles/262941.html

          前者:   都需創建HibernateTransactionManager類.
          <bean id="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager">
            <property name="sessionFactory">
             <ref local="sessionFactory" />
            </property>
           </bean>

          (一)org.springframework.transaction.interceptor.TransactionProxyFactoryBean:  創建代理事務.

          事務代理Bean:

           1 <bean id="userDAOProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
           2       <property name="transactionManager">
           3             <ref bean="transactionManager" />
           4       </property>
           5       <property name="target">
           6            <ref local="userDAO" />
           7       </property>
           8       <property name="transactionAttributes">
           9            <props>
          10                 <prop key="insert*">PROPAGATION_REQUIRED</prop>
          11           </props>
          12       </property>
          13 </bean>


          引用代理Bean:

          1 <bean name="/login" class="com.test.struts.action.LoginAction" singleton="false">
          2     <property name="userDAO">                                     <!--這里的userDAO是LoginAction的屬性-->
          3           <ref bean="userDAOProxy" />                              <!--ref bean=userDAO,  調用的是原來的Bean,  則不是在事務中運行-->
          4     </property>
          5 </bean>



          (二)org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator:  根據BeanName自動創建事務代理
          org.springframework.transaction.interceptor.TransactionInterceptor:  攔截器

           1<!--                    無需引用代理BEAN(bean id 可去掉),業務層(/login)可直接調用原來的Bean==>userDAO(userDAO已封裝入事務)                          -->
           2 <bean  class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
           3       <property name="beanNames">
           4             <value>userDAO</value>
           5       </property>
           6       <property name="interceptorNames">
           7             <list>
           8                 <value>transactionInterceptorName</value>
           9             </list>
          10        </property>
          11 </bean>
          12
          13<!--                   攔截器,定義事務策略                               -->
          14 <bean id="transactionInterceptorName" class="org.springframework.transaction.interceptor.TransactionInterceptor">
          15       <property name="transactionAttributes">
          16           <props>
          17               <prop key="*">PROPAGATION_REQUIRED</prop>                    <!--事務策略定義-->
          18           </props>
          19       </property>
          20       <property name="transactionManager">
          21             <ref local="transactionManager" />
          22       </property>
          23 </bean>


           

          (三)DefaultAdvisorAutoProxyCreator:  自動創建事務代理.(與二類似)
          posted on 2007-11-26 17:00 紫蝶∏飛揚↗ 閱讀(1114) 評論(0)  編輯  收藏 所屬分類: Spring
          主站蜘蛛池模板: 牡丹江市| 通城县| 搜索| 梧州市| 湛江市| 吴桥县| 楚雄市| 左权县| 三门峡市| 新建县| 巴青县| 馆陶县| 扎赉特旗| 垦利县| 定陶县| 自治县| 呼图壁县| 城固县| 白沙| 丘北县| 林周县| 高唐县| 福建省| 大洼县| 昌江| 泸州市| 政和县| 克山县| 金阳县| 厦门市| 府谷县| 广饶县| 瑞丽市| 沈丘县| 外汇| 东乌珠穆沁旗| 巍山| 当雄县| 尼木县| 潞西市| 宜君县|