隨筆-9  評(píng)論-168  文章-266  trackbacks-0

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

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

          (一)org.springframework.transaction.interceptor.TransactionProxyFactoryBean:  創(chuàng)建代理事務(wù).

          事務(wù)代理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,  調(diào)用的是原來(lái)的Bean,  則不是在事務(wù)中運(yùn)行-->
          4     </property>
          5 </bean>



          (二)org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator:  根據(jù)BeanName自動(dòng)創(chuàng)建事務(wù)代理
          org.springframework.transaction.interceptor.TransactionInterceptor:  攔截器

           1<!--                    無(wú)需引用代理BEAN(bean id 可去掉),業(yè)務(wù)層(/login)可直接調(diào)用原來(lái)的Bean==>userDAO(userDAO已封裝入事務(wù))                          -->
           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<!--                   攔截器,定義事務(wù)策略                               -->
          14 <bean id="transactionInterceptorName" class="org.springframework.transaction.interceptor.TransactionInterceptor">
          15       <property name="transactionAttributes">
          16           <props>
          17               <prop key="*">PROPAGATION_REQUIRED</prop>                    <!--事務(wù)策略定義-->
          18           </props>
          19       </property>
          20       <property name="transactionManager">
          21             <ref local="transactionManager" />
          22       </property>
          23 </bean>


           

          (三)DefaultAdvisorAutoProxyCreator:  自動(dòng)創(chuàng)建事務(wù)代理.(與二類似)
          posted on 2007-11-26 17:00 紫蝶∏飛揚(yáng)↗ 閱讀(1114) 評(píng)論(0)  編輯  收藏 所屬分類: Spring
          主站蜘蛛池模板: 苏尼特左旗| 时尚| 精河县| 庆云县| 洞口县| 晋城| 桐乡市| 潜江市| 开鲁县| 景泰县| 五原县| 泰来县| 乾安县| 灵寿县| 南开区| 奇台县| 屯昌县| 南阳市| 五常市| 谢通门县| 察哈| 贡觉县| 北海市| 乌海市| 阳泉市| 南雄市| 怀柔区| 五指山市| 张家口市| 华坪县| 鲜城| 阳山县| 饶阳县| 镇平县| 陆丰市| 华宁县| 福海县| 扬州市| 长丰县| 句容市| 敖汉旗|