我使用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表达式。
答案 0 :(得分:1)
你应该使用我们在框架中的代码:
private final static SpelExpressionParser PARSER = new SpelExpressionParser();
并使用PARSER
填充Expression
String
PARSER.parseExpression("headers.url");