posts - 63,comments - 71,trackbacks - 0

          研究了老半天的
          public class PtabTranjnlNote extends HibernateDBMaintain implements AfterReturningAdvice{


           public void afterReturning(Object arg0, Method arg1, Object[] arg2, Object arg3) throws Throwable {
            // TODO Auto-generated method stub

              System.out.println("======22222222===PtabTranjnlNote===afterReturning===Channel=["+tsmLogMap.get("Channel")+"]");
          }

          }

          確不知道 Channel 的值是怎么得到的,郁悶了個(gè)老半天啊


          在applicationContext.xml里面看到
          <!-- 如果有多個(gè)BizProcess的對(duì)象需要代理,我們?cè)赟pring配置中為每一個(gè)Bean都配置一個(gè)代理,那么配置文件的維護(hù)就成了麻煩。
                  解決多bean需要代理
                 為此,Spring提供了比較方便的方法解決這個(gè)問題,比如BeanNameAutoProxyCreator、
                 DefaultAdviceAutoProxyCreator和metadata autoproxying。
                 我們采用了BeanNameAutoProxyCreator,因?yàn)樗容^直觀和簡(jiǎn)單 --> 
              <bean id="operateAutoProxyCreator" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
                     <property name="proxyTargetClass">
                         <value>true</value>
                     </property>
                  <property name="beanNames">
                     <list>
                       <!-- 交易日志bean *Manager -->
                        <value>*Manager</value>             
                     </list>
                  </property>
                  <property name="interceptorNames">
                   <list>
                     <!-- value>creditAdvice</value>
                     <value>financeAdvice</value -->
                     <value>midAdvice</value>
                     <value>acctAdvice</value>
                     <value>queryAdvice</value>
                     <value>transAdvice</value>
                   </list>
                  </property>
              </bean>

          的定義,然后找到

          <!-- 中間業(yè)務(wù) -->
              <bean id="midAdvice" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">     
                   <property name="advice" ref="ptabTranjnlNote"/>
                   <property name="patterns">
                     <value>.*doMid.*</value>
                   </property>
              </bean>

          <!-- 中間業(yè)務(wù) -->
              <bean id="midAdvice" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">     
                   <property name="advice" ref="ptabTranjnlNote"/>
                   <property name="patterns">
                     <value>.*doMid.*</value>
                   </property>
              </bean>

          同時(shí)也找到了 doMid*的方法,但是就是找不到在哪里傳了這個(gè)參數(shù)進(jìn)去,

          睡了個(gè)懶覺,想了想 ,是不是原來(lái)攔截的方法的參數(shù)的參數(shù)就是afterReturning里面的參數(shù)呢
           
          找到了調(diào)用doMid方法的地方,傳了Channel 進(jìn)去,還真是這么回事,成功了

          老啦 ,這么簡(jiǎn)單問題研究了我3小時(shí)

          posted on 2007-05-10 14:14 還沒想好名 閱讀(1305) 評(píng)論(0)  編輯  收藏 所屬分類: 技術(shù)
          主站蜘蛛池模板: 肥东县| 天水市| 苏尼特右旗| 杨浦区| 酉阳| 沧州市| 小金县| 蒙自县| 大荔县| 隆子县| 新化县| 德钦县| 邢台县| 措美县| 永兴县| 靖江市| 岳普湖县| 军事| 阿坝县| 突泉县| 大足县| 铅山县| 辛集市| 会泽县| 乌鲁木齐市| 宁南县| 嘉义市| 荥阳市| 河池市| 会泽县| 隆德县| 寿阳县| 康乐县| 融水| 原平市| 西城区| 金山区| 东港市| 仪征市| 沈阳市| 专栏|