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 的值是怎么得到的,郁悶了個老半天啊


          在applicationContext.xml里面看到
          <!-- 如果有多個BizProcess的對象需要代理,我們在Spring配置中為每一個Bean都配置一個代理,那么配置文件的維護就成了麻煩。
                  解決多bean需要代理
                 為此,Spring提供了比較方便的方法解決這個問題,比如BeanNameAutoProxyCreator、
                 DefaultAdviceAutoProxyCreator和metadata autoproxying。
                 我們采用了BeanNameAutoProxyCreator,因為他比較直觀和簡單 --> 
              <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>

          的定義,然后找到

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

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

          同時也找到了 doMid*的方法,但是就是找不到在哪里傳了這個參數進去,

          睡了個懶覺,想了想 ,是不是原來攔截的方法的參數的參數就是afterReturning里面的參數呢
           
          找到了調用doMid方法的地方,傳了Channel 進去,還真是這么回事,成功了

          老啦 ,這么簡單問題研究了我3小時

          posted on 2007-05-10 14:14 還沒想好名 閱讀(1308) 評論(0)  編輯  收藏 所屬分類: 技術
          主站蜘蛛池模板: 靖江市| 宜城市| 平乐县| 华宁县| 集安市| 大埔县| 太保市| 盐津县| 绥化市| 永兴县| 长沙市| 安国市| 合肥市| 徐汇区| 全南县| 大城县| 长治市| 镇原县| 礼泉县| 渝北区| 化州市| 宝应县| 抚宁县| 双峰县| 平湖市| 裕民县| 漯河市| 民乐县| 安顺市| 尚义县| 新化县| 南郑县| 盘山县| 珠海市| 嘉峪关市| 阿鲁科尔沁旗| 三河市| 屯留县| 西乌珠穆沁旗| 白沙| 鹤岗市|