我正在使用 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.setUriVariablesExpression
或 httpHandler.setUriVariableExpressions
添加表达式,但我不知道如何以编程方式创建 SpEl 表达式。
最佳答案
您应该像我们在框架中一样使用代码:
private final static SpelExpressionParser PARSER = new SpelExpressionParser();
并使用该PARSER
从String
填充Expression
PARSER.parseExpression("headers.url");
关于java - 在java配置中配置Spring Integration SpEl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29058899/