在 java 配置中配置 Spring Integration SpEl

Configure Spring Integration SpEl in java config

我正在使用 spring 集成通过 http 调用其他服务。我正在使用注释来配置 spring 集成,但是当我希望我的服务 url 可根据消息有效负载进行配置时,我遇到了问题。当前代码如下所示:

@Bean
@ServiceActivator(inputChannel = "myChannel")
public HttpRequestExecutingMessageHandler otherServiceHttpCall() {
    final HttpRequestExecutingMessageHandler httpHandler =
            new HttpRequestExecutingMessageHandler("http://localhost:8080/updateStatus/{id}?");
    httpHandler.setHttpMethod(HttpMethod.GET);
    httpHandler.setOutputChannel(posPaymentResponse());
    return httpHandler;
}

我知道我可以通过调用 httpHandler.setUriVariablesExpressionhttpHandler.setUriVariableExpressions 添加表达式,但我不知道如何以编程方式创建 SpEl 表达式。

你应该像我们在框架中使用代码:

private final static SpelExpressionParser PARSER = new SpelExpressionParser();

并使用 PARSERString

填充 Expression
PARSER.parseExpression("headers.url");