如何将路径变量分配给java dsl http入站网关中的标头?

时间:2015-11-07 21:14:40

标签: java spring spring-integration

嘿,我无法弄清楚如何转换它:

<int-http:inbound-gateway request-channel="eventSinkPayloadChannel"
                          path="/EventSink/{producer}/{consumer}"
                          supported-methods="POST" >
    <int-http:header name="PRODUCER" expression="#pathVariables.producer"/>
    <int-http:header name="CONSUMER" expression="#pathVariables.consumer"/>
</int-http:inbound-gateway>

进入Java DSL。我认为headerExpression方法将是使用的方法,

        Http.inboundGateway("/EventSink/{producer}/{consumer}")
                      .headerExpression("PRODUCER", expression)
                      .headerExpression("CONSUMER", expression)
                      .get()

但是我无法在第二个参数中传递一个字符串,因为它期望类型为Expression,所以我不知道如果我必须在那里实例化SpelExpression或者我实际上甚至使用正确的方法。

感谢帮助。

1 个答案:

答案 0 :(得分:1)

private static final SpelExpressionParser PARSER = new SpelExpressionParser();

...

    .headerExpression("PRODUCER", PARSER.parseExpression("#pathVariables.producer"))