研究了老半天的
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
還沒想好名 閱讀(1304)
評論(0) 編輯 收藏 所屬分類:
技術