Java Spring集成中bean上未触发Spring AOP

Java Spring集成中bean上未触发Spring AOP,java,spring,spring-integration,spring-aop,Java,Spring,Spring Integration,Spring Aop,我试图在调用spring集成服务中的一个bean之前触发一个方面并执行一些操作。这是我到目前为止的代码 global context.xml <aop:aspectj-autoproxy/> ... <bean class="com.ryanstull.spring.integration.DebugAdvice"/> 我的方面 @Aspect public class DebugAdvice{ public DebugAdvice(){ }

我试图在调用spring集成服务中的一个bean之前触发一个方面并执行一些操作。这是我到目前为止的代码

global context.xml

<aop:aspectj-autoproxy/>
...
<bean class="com.ryanstull.spring.integration.DebugAdvice"/>
我的方面

@Aspect
public class DebugAdvice{

    public DebugAdvice(){
    }

    @Before("within(com.ryanstull.spring.integration..*) && execution(public * *(..))")
    public void tester(){
        System.out.println("Before Debug Transformer advice.");
    }
}
然而,由于某些原因,每当我运行我的应用程序时,我只会看到“在调试转换器中”,而且我的建议似乎从未被触发


另外,我正在开发一个使用Spring3.2.3和SpringIntegration2.2.4的遗留应用程序;如果转换器是POJO(即删除
扩展AbstractPayloadTransformer
),则它可以工作

我们通常建议使用POJO,但如果您想扩展
AbstractPayloadTransformer
,那么

<aop:aspectj-autoproxy proxy-target-class="true" />


…有效。

谢谢您的快速回答,Gary!我更新了我的代码,使转换器现在是基于注释的,但不幸的是它仍然不能工作。我在最初的问题中忘记提到的一点是,这是一个遗留应用程序,运行在spring 3.2.3和spring integration 2.2.4上,因此可能会影响结果。我刚刚用这些版本进行了测试,得到了相同的结果-与POJO转换器或
代理目标类一起工作。我把它推到了。嗯,出于某种原因,它仍然不起作用。我没有提到的另一件事是,我的项目处于脱机状态,因此我不确定解决“”标记是否会有问题。如果这不是一个问题,我想这一定是我的项目配置中的其他问题。也许调试日志记录会有所帮助。如果我尝试使用“proxy target class=“true”,我的应用程序将无法启动,并且我会因为无法生成某些类的子类而出现一系列错误。我猜这是因为spring AOP使用代理来实现方面。我不明白的是为什么proxt target class=“true”使一些不相关的类受到方面的影响。有没有办法获得proxt target class=“true”提供的功能,但只针对我需要的一个类?只需检查spring配置文件,不确定,但我认为您尚未配置DebugTransformer类除了声明bean之外,您还必须如何配置它?在global-context.xml文件中,您只添加了发布的DebugAdvice bean,而没有添加DebugTransformer。您可能错过了我的spring集成服务文件中声明的itOh
<aop:aspectj-autoproxy proxy-target-class="true" />