我正在将spring-integration 3.x更改为4.x. 我应该将每个xml配置更改为java文件。
但是,我找不到可替代的豆子代替以下。
<int-http:outbound-gateway url="http://www.google.com/ig/api?weather={city}"
http-method="GET"
expected-response-type="java.lang.String"
request-factory="requestFactory"
request-channel="requestChannel"
reply-channel="replyChannel">
<int-http:uri-variable name="city" expression="payload"/>
</int-http:outbound-gateway>
<bean id="requestFactory"
class="org.springframework.http.client.SimpleClientHttpRequestFactory">
<property name="connectTimeout" value="5000"/>
<property name="readTimeout" value="5000"/>
</bean>
我尝试使用HttpRequestExecutingMessageHandler。
@Bean
HttpRequestExecutingMessageHandler httpGateway() {
HttpRequestExecutingMessageHandler gateway
= new HttpRequestExecutingMessageHandler(gitlabUri);
gateway.setOutputChannel(requestChannel());
return gateway;
}
但它没有请求通道作为参数。
帮帮我......
答案 0 :(得分:2)
XML解析器为出站端点创建2个bean;一个Consumer
bean(事件驱动或可轮询,取决于输入通道类型)和消息处理程序,它被注入到使用者中。 ConsumerEndpointFactoryBean
用于生成适当的消费者。
所以,您可以自己连接2个bean,或者使用@ServiceActivator
注释,框架将负责为您创建消费者......
@ServiceActivator(input-channel="toHttp")
@Bean
HttpRequestExecutingMessageHandler httpGateway() {
HttpRequestExecutingMessageHandler gateway
= new HttpRequestExecutingMessageHandler(gitlabUri);
gateway.setOutputChannel(requestChannel());
return gateway;
}
有关详细信息,请参阅the reference manual。它使用HTTP端点作为示例。