我有以下spring-integration XML配置
<ip:tcp-outbound-gateway id="outboundClient"
request-channel="requestChannel"
reply-channel="string2ObjectChannel"
connection-factory="clientConnectionFactory"
request-timeout="10000"
reply-timeout="10000"/>
如何编写与上述相同的Java配置? 我认为相当于
@Bean
public TcpOutboundGateway outboundClient() {
TcpOutboundGateway tcpOutboundGateway = new TcpOutboundGateway();
tcpOutboundGateway.setConnectionFactory(clientConnectionFactory());
tcpOutboundGateway.setRequiresReply(true);
tcpOutboundGateway.setReplyChannel(string2ObjectChannel());
tcpOutboundGateway.setRequestTimeout(10000);
tcpOutboundGateway.setSendTimeout(10000);
return tcpOutboundGateway;
}
但我找不到设置请求频道的方法。 任何帮助将不胜感激。
谢谢
答案 0 :(得分:3)
您的配置看起来不错,但您应该知道任何Spring Integration Consumer组件都包含两个主要对象:MessageHandler
(在您的情况下为TcpOutboundGateway
)和EventDrivenConsumer
用于{{ 1 {}} subscriable
或input-channel
如果PollingConsumer
为input-channel
。
所以,既然你已经拥有第一个,处理部分,你需要另一个消耗。为此,Spring Integration建议使用端点注释标记Pollable
:
@Bean
请参阅Spring Integration Reference Manual。
中的详情但是,为了允许这样的注释过程(或任何其他Spring Integration基础结构),您必须使用@Bean
@ServiceActivator(inputChannel = "requestChannel")
public TcpOutboundGateway outboundClient() {
标记@Configuration
。
还要考虑使用Spring Integration Java DSL从JavaConfig获得更多收益。