我正在尝试使用类tcpnetclientconnectionfactory来实现/委托我自己的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) {....}
最佳答案
我通过将“一次性”属性设置为true解决了这个问题。
关于java - 如何在Spring集成中自定义或委托(delegate)TcpNetClientConnectionFactory作为TCP连接池,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29787106/