Spring integration 将消息驱动的通道适配器xml转换为注释

Spring integration 将消息驱动的通道适配器xml转换为注释,spring-integration,Spring Integration,我正在尝试将我正在工作的spring集成xml配置转换为注释,我想知道应该为消息驱动的通道使用什么注释,或者是否有注释?会是@JMSListener吗 <jms:message-driven-channel-adapter id="jmsIn" channel="jmsInChannel" destination="request" error-channel="errorChannel"/> 不,您不需要担心任何注释 的类是JmsM

我正在尝试将我正在工作的spring集成xml配置转换为注释,我想知道应该为消息驱动的通道使用什么注释,或者是否有注释?会是@JMSListener吗

<jms:message-driven-channel-adapter id="jmsIn"
        channel="jmsInChannel"
        destination="request"
        error-channel="errorChannel"/>

不,您不需要担心任何注释

的类是
JmsMessageDrivenEndpoint
,因为它是
消息驱动的
,所以它本身就是一个东西

因此,您应该将其声明为
@Bean
,以及它的依赖项

从另一个角度来看,如果您要提供足够的
AbstractMessageListenerContainer
ChannelPublishingJmsMessageListener
依赖项定制,那么这可能会有点复杂

考虑使用针对类似混乱情况引入的配置:简化XML配置向Java&Annotations配置移动的方式


您可以在这里找到JMS适配器的测试:

这需要使用Java8LAMDA吗?我现在只在6号。不,没有。无论如何,您都可以在Java6中使用它。但是正确:您必须实例化所有这些内联接口,而不是Java 8 lambda。您是否会说,如果您不在Java 8上,最好还是坚持使用spring集成注释/spring xml混合方法,而不是DSL?在这种情况下,似乎需要创建很多额外的代码来移植XML。好吧,从很大的高度来看,这就是为什么我们有这些消息传递注释。但从另一方面看,这取决于流程的复杂性:如果您认为xml类型而不是Java方法链更好,那么这是您的选择。无论如何,我们推荐JavaDSL,因为它包含了大量的boilreplate代码。加上IDE帮助完成代码和java文档。请用更具体的请求开始一个新问题。您需要
AbstractMessageListenerContainer
ChannelPublishingJmsMessageListener
bean注入
JmsMessageDrivenEndpoint
。我不明白将XML属性映射到这些对象的适当设置器的问题在哪里。