我正在尝试获取一个方面来触发并在调用我的spring集成服务中的一个bean之前执行某些操作。到目前为止,这是我的代码..
全局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
的遗留应用程序答案 0 :(得分:0)
有趣;如果变换器是POJO(即删除extends AbstractPayloadTransformer<Object,Object>
),它就可以工作。
我们通常建议使用POJO,但如果您想扩展AbstractPayloadTransformer
,那么......
<aop:aspectj-autoproxy proxy-target-class="true" />
...作品。