如何在 java dsl http 入站网关中将路径变量分配给 headers?

How to assign path variables to headers in a java dsl http inbound gateway?

嘿,我不太明白如何转换它:

<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()

但我不能真正在第二个参数中传递一个字符串,因为它需要表达式类型,所以我不知道我是否必须在那里实例化一个 SpelExpression,或者我是否实际上使用了正确的方法。

感谢帮助。

private static final SpelExpressionParser PARSER = new SpelExpressionParser();

...

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