我想知道是否可以在spring mvc应用程序和使用TCP-IP连接的旧系统之间插入双向连接。
提到遗留系统使用TCP / ip而不是http,因此无需谈论HTTP如何更好,谢谢!
答案 0 :(得分:8)
见Spring Integration。您可以使用消息传递网关将SI流连接到MVC控制器
Controller-> gateway-> {可选过滤/转换} - > tcp出站网关
网关使用其服务接口注入控制器。
tcp-client-server sample显示了如何。
编辑:
如果样本中不清楚,您需要定义SI流量......
<!-- Client side -->
<int:gateway id="gw"
service-interface="org.springframework.integration.samples.tcpclientserver.SimpleGateway"
default-request-channel="input"/>
<int-ip:tcp-connection-factory id="client"
type="client"
host="localhost"
port="1234"
single-use="true"
so-timeout="10000"/>
<int:channel id="input" />
<int-ip:tcp-outbound-gateway id="outGateway"
request-channel="input"
reply-channel="clientBytes2StringChannel"
connection-factory="client"
request-timeout="10000"
remote-timeout="10000"/>
<int:transformer id="clientBytes2String"
input-channel="clientBytes2StringChannel"
expression="new String(payload)"/>
并将网关注入您的@Controller
...
public interface SimpleGateway {
public String send(String text);
}
@Controller
public class MyController {
@Autowired
SimpleGateway gw;
...
}