研究了老半天的
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
还没想好名 阅读(1301)
评论(0) 编辑 收藏 所属分类:
技术