Spring集成dsl outboundGateway使用表达式设置查询参数

时间:2018-05-02 11:10:08

标签: spring-integration spring-integration-dsl

我在Spring集成流程中有一个休息请求。如何从消息中选择有效负载或标头中的值,并设置url

的查询参数
.handle(Http.outboundGateway(UriComponentsBuilder.fromHttpUrl("localhost:8080).path("search").queryParam("order", "orderId").toUriString())
.httpMethod(HttpMethod.GET)
.expectedResponseType(Order.class))

在上面的代码中,我需要从有效负载

获取orderId

1 个答案:

答案 0 :(得分:1)

如果你坚持使用UriComponentsBuilder,那么就是这样:

.handle(Http.outboundGateway(m ->
        UriComponentsBuilder.fromHttpUrl("localhost:8080")
                    .path("search")
                    .queryParam("order", m.getPayload())
                    .build())
            .httpMethod(HttpMethod.GET)
            .expectedResponseType(Order.class))

或者像这样:

.handle(Http.outboundGateway(m -> servieUrl + "/search?orderId={orderId}")
            .uriVariable("orderId", m -> m.getPayload())
            .httpMethod(HttpMethod.GET)
            .expectedResponseType(Order.class))