如何在Spring集成中自定义或委托TcpNetClientConnectionFactory作为TCP连接池

时间:2015-04-22 03:20:54

标签: java tcp spring-integration

我正在尝试使用类TcpNetClientConnectionFactory为客户端tcp连接实现/委派我自己的TCP连接池。下面是我的bean定义,我已将其注入我的出站适配器。我也使用ThreadLocal来获取消息附带的动态主机,以便我能够与工厂进行通信。我想让连接工厂(TcpNetClientConnectionFactory的子类)再次创建/构建一个新连接,具体取决于消息中提供的主机。

尽管如此,我不知道这种情况的最佳实践或方法是什么。如果有人能提供帮助,我们将非常感激。

<bean id="client2" class="com.xxx.yyy.connection.MyTcpNetClientConnectionFactory">
    <constructor-arg value="localhost" />
    <constructor-arg value="1234" />
    <constructor-arg value="false" />
    <constructor-arg value="10000" />
    <constructor-arg value="false" />
    <property name="serializer" ref="fastestWireFormatSerializer"></property>
    <property name="deserializer" ref="fastestWireFormatSerializer"></property>
</bean>

<int-ip:tcp-outbound-channel-adapter
    id="outAdapter" 
    channel="outChannel"
    connection-factory="client2" 
    />

这是TcpNetClientConnectionFactory的构造函数:

public MyTcpNetClientConnectionFactory(String host, int port, 
    boolean singleUse, int soTimeout, boolean soKeepAlive) {....}

1 个答案:

答案 0 :(得分:1)

我通过设置&#34;一次性使用&#34;解决了这个问题。财产到真。