Spring integration Covert int jms:发布-订阅通道到spring集成dsl

Spring integration Covert int jms:发布-订阅通道到spring集成dsl,spring-integration,Spring Integration,我正在努力改变信仰 <int-jms:publish-subscribe-channel id="partsPubSubChannel" topic-name="part.topic" connection-factory="jmsConnectionFactory"/> 我如何设置主题名属性?嗨,加里,我最初确实尝试过,但没有成功。我遇到以下错误:IntegrationFlow不能只包含一个“MessageChannel”。在流结束之前至少添加“.bridge()”EIP方法。R

我正在努力改变信仰

<int-jms:publish-subscribe-channel id="partsPubSubChannel" topic-name="part.topic" connection-factory="jmsConnectionFactory"/>

我如何设置
主题名
属性?

嗨,加里,我最初确实尝试过,但没有成功。我遇到以下错误:
IntegrationFlow不能只包含一个“MessageChannel”。在流结束之前至少添加“.bridge()”EIP方法。
Right。你需要对这条信息做点什么。您只需添加
.channel(…)
,框架就会将它们连接起来。但是你不能只有一个通道就有一个流。我发布到这个主题,订阅者只需订阅这个主题就可以得到消息。在XML版本中,我不需要执行任何其他操作。我如何在DSL中复制它?这是DSL的一个限制。另一种方法是简单地将其连接为@Bean。嗯。不遵循它是否已经是一个带有@bean注释的bean?或者你的意思是返回Jms.publishSubscribeChannel而不是IntegrationFlow?嗨,Garry,我最初确实尝试过,但没有成功。我遇到以下错误:
IntegrationFlow不能只包含一个“MessageChannel”。在流结束之前至少添加“.bridge()”EIP方法。
Right。你需要对这条信息做点什么。您只需添加
.channel(…)
,框架就会将它们连接起来。但是你不能只有一个通道就有一个流。我发布到这个主题,订阅者只需订阅这个主题就可以得到消息。在XML版本中,我不需要执行任何其他操作。我如何在DSL中复制它?这是DSL的一个限制。另一种方法是简单地将其连接为@Bean。嗯。不遵循它是否已经是一个带有@bean注释的bean?还是说返回Jms.publishSubscribeChannel而不是IntegrationFlow?
@Bean
public IntegrationFlow pubSubFlow() {
    return IntegrationFlows.from(Jms.publishSubscribeChannel(this.jmsConnectionFactory)
                                    .destination("part.topic"))
                            .handle(...)
                             ...
                            .get();
}
@Bean
public IntegrationFlow pubSubFlow() {
    return IntegrationFlows.from(Jms.publishSubscribeChannel(this.jmsConnectionFactory)
                                    .destination("part.topic"))
                            .handle(...)
                             ...
                            .get();
}