与 tcp-outbound-gateway 等效的 java 配置是什么?

What is the java config equivalent to tcp-outbound-gateway?

我有以下 spring-集成 XML 配置

<ip:tcp-outbound-gateway id="outboundClient"
        request-channel="requestChannel"
        reply-channel="string2ObjectChannel"
        connection-factory="clientConnectionFactory"
        request-timeout="10000"
        reply-timeout="10000"/>

如何编写与上述等价的 Java 配置? 我以为等价物是

@Bean
public TcpOutboundGateway outboundClient() {
    TcpOutboundGateway tcpOutboundGateway = new TcpOutboundGateway();
    tcpOutboundGateway.setConnectionFactory(clientConnectionFactory());
    tcpOutboundGateway.setRequiresReply(true);
    tcpOutboundGateway.setReplyChannel(string2ObjectChannel());
    tcpOutboundGateway.setRequestTimeout(10000);
    tcpOutboundGateway.setSendTimeout(10000);
    return tcpOutboundGateway;
}

但是我找不到设置请求通道的方法。 任何帮助将不胜感激。

谢谢

您的配置看起来不错,但您还应该知道任何 Spring Integration Consumer 组件都包含两个主要对象:MessageHandler(在您的情况下为 TcpOutboundGateway)和 EventDrivenConsumer 对于 subscriable input-channelPollingConsumer 如果 input-channelPollable.

因此,既然您已经有了第一个处理部分,您还需要另一个消耗部分。为此 Spring 集成建议使用端点注释标记您的 @Bean

@Bean
@ServiceActivator(inputChannel = "requestChannel")
public TcpOutboundGateway outboundClient() {

Spring Integration Reference Manual 中查看更多信息。

然而,要允许这样的注释过程(或任何其他 Spring 集成基础设施),您必须用 @EnableIntegration 标记您的 @Configuration

也考虑使用 Spring Integration Java DSL 从 JavaConfig 中获得更多收益。