我正在使用Spring Integration实现TCP客户端。 要求是: 1.通过UDP连接(从某处)接收TCP服务器的ip或主机地址。 2.打开与服务器的TCP连接,从上一步骤到目标主机,并将一些业务数据发送到此服务器。
我使用Spring Integration框架,版本" 2.2.0.RELEASE",问题是在 tcp-connection-factory 的默认配置 host 属性应为"硬编码"在xml中。例如:
<ip:tcp-connection-factory id="client" type="client" host="localhost" port="1234" single-use="true"/>
问题是如何在应用程序上下文中避免目标主机的静态定义,并且能够“懒惰”&#39;在目标主机已知时初始化tcp-connection-factory。
我知道这个流程可以通过Java的标准网络API轻松实现,问题是关于Spring-Integration API的具体问题
答案 0 :(得分:0)
目前,配置是静态的。
然而,您可以使用与dynamic ftp sample中使用的技术类似的技术,该技术在运行时配置ftp出站适配器。
答案 1 :(得分:0)
至于<int-ip:tcp-connection-factory>
提供AbstractConnectionFactory
的某些实例。从另一方<int-ip:tcp-outbound-channel-adapter>
通过connection-factory
应用该实例,因此,您无法停止实施自己的RoutingConnectionFactory
。
实施可能依赖ThreadLocal
的某些值。这个想法在这里:
答案 2 :(得分:0)
它目前不可能/容易 - 即使您为tcp-connection-factory定制或扩展类以便能够连接到更改的主机。有一个open new feature request in JIRA来提供此功能。