java - 在java配置中配置Spring Integration SpEl

标签 java spring-integration spring-el

我正在使用 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");

关于java - 在java配置中配置Spring Integration SpEl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29058899/

相关文章:

java - Spring Expression Language - 如果设置了配置文件,则设置不同的值

java - 在 @Configuration bean 的 SpEL 表达式中引用 ConfigurationProperties Beans

spring - 您可以在 @PreAuthorize 中使用 SpEL 引用实例属性吗?

java.lang.NoClassDefFoundError : Could not initialize class XXX

java - Java中MongoDB的MapReduce函数返回null

java - Spring集成单元测试http :outbound-gateway

java - Spring Integration 中的事务感知 POJO

java - 如何使 putAll 原子化?

java - 如何从文本中删除字符串?

java - 通用类型和 HTTP 出站网关结果