2015-03-15 3 views
1

Я использую интеграцию с весной для вызова другой службы через http. Я использую аннотации для настройки интеграции Spring, но у меня есть проблема, когда я хочу, чтобы мой URL-адрес службы настраивался на основе полезной нагрузки сообщения. Текущий код выглядит следующим образом:Настройка Spring Integration SpEl в конфигурации java

@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 программно.

ответ

1

Вы должны использовать код, как мы в рамках:

private final static SpelExpressionParser PARSER = new SpelExpressionParser(); 

И использовать это PARSER для заполнения Expression из String

PARSER.parseExpression("headers.url"); 
Смежные вопросы