java - 如何在Java类配置中定义 `TcpOutboundGateway` bean

标签 java spring integration gateway outbound

当我尝试定义 TcpOutboundGateway bean 时,我发现该类没有 requestChannelreplyChannelName setter 。如何在 Java 类配置中正确定义该 bean?

哪个 Java 类配置与下面提供的 XML 配置相同?

<int-ip:tcp-outbound-gateway id="outGateway"
        request-channel="input"
        reply-channel="clientBytes2StringChannel"
        connection-factory="client"
        request-timeout="10000"
        reply-timeout="10000"/>

最佳答案

此代码等于 link 提供的客户端 xml 配置。 .

public static final String STRING_TO_BYTES_CHANNEL = "stringToBytesChannel";
public static final String REQUEST_CHANNEL = "requestChannel";

private String host = "localhost";
private int port = 2020;

@Bean
public TcpNetClientConnectionFactory connectionFactory() {
    TcpNetClientConnectionFactory factory = new TcpNetClientConnectionFactory(host, port);
    factory.setSingleUse(true);
    factory.setSoTimeout(10000);
    return factory;
}

@Bean
public MessageChannel requestChannel() {
    return new DirectChannel();
}

@Bean
public MessageChannel stringToBytesChannel() {
    return new DirectChannel();
}

@Bean
@Transformer(inputChannel = STRING_TO_BYTES_CHANNEL)
public ObjectToStringTransformer objectToStringTransformer() {
    return new ObjectToStringTransformer();
}

@Bean
@ServiceActivator(inputChannel = REQUEST_CHANNEL)
public TcpOutboundGateway outboundGateway() {
    TcpOutboundGateway gateway = new TcpOutboundGateway();
    gateway.setConnectionFactory(connectionFactory());
    gateway.setReplyChannel(stringToBytesChannel());
    gateway.setRequestTimeout(10000);
    gateway.setRemoteTimeout(10000);
    return gateway;
}

@MessagingGateway(defaultRequestChannel = REQUEST_CHANNEL)
public interface RequestGateway {
    String send(String message);
}

关于java - 如何在Java类配置中定义 `TcpOutboundGateway` bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30604418/

相关文章:

java - 反转链表的右半部分

java - 无法在 Eclipse 中运行 Spring Boot + JavaFX

java - Spring内存使用率过高

java - Spring Boot - 不支持的主要.次要版本 51.0

java - super 中的Unnest方法

java - Spring和卡夫卡: Join 3 Kafka topics to generate output Kafka streams

java -/tmp/tomcat-docbase 始终使用 Spring Boot JAR(但不是 WAR)创建

sql - SSIS部署: The task <task name> cannot run on this edition of integration services.需要更高级别的版本

java - 哪些 Java MVC 框架可以轻松地与 StringTemplate 集成?

MySQL选择最高用户最高排名组双胞胎