【发布时间】:2016-03-04 16:58:45
【问题描述】:
我试图在我的 spring 集成服务中的一个 bean 被调用之前触发一个方面并做一些事情。到目前为止,这是我的代码..
global-context.xml
<aop:aspectj-autoproxy/>
...
<bean class="com.ryanstull.spring.integration.DebugAdvice"/>
这是我的 Spring 集成管道中的 bean
package com.ryanstull.spring.integration;
import org.springframework.integration.annotation.Transformer;
public class DebugTransformer{
@Transformer
public Object transformPayload(Object arg0) throws Exception{
System.out.println("In debug transformer");
return arg0;
}
}
我的一面
@Aspect
public class DebugAdvice{
public DebugAdvice(){
}
@Before("within(com.ryanstull.spring.integration..*) && execution(public * *(..))")
public void tester(){
System.out.println("Before Debug Transformer advice.");
}
}
但由于某种原因,每当我运行我的应用程序时,我只看到“在调试转换器中”,而且似乎我的建议从未被触发。
另外,我正在开发一个使用 spring 3.2.3 和 spring integration 2.2.4 的遗留应用程序
【问题讨论】:
-
只检查你的spring配置文件,不确定但我认为你没有配置DebugTransformer类
-
除了声明 bean 之外,您还需要如何配置它?
-
在您的 global-context.xml 文件中,您只添加了已发布的 DebugAdvice bean,但未添加 DebugTransformer 。可能你错过了
-
哦,这是在我的 spring 集成服务文件中声明的
标签: java spring spring-integration spring-aop