Почему в Spring Integration нет аннотации @OutboundChannelAdapter? - PullRequest
0 голосов
/ 25 февраля 2019

1) Я хотел бы создать компонент HttpRequestExecutingMessageHandler (адаптер исходящего канала для HTTP) и указать канал с помощью аннотации, такой как @OutboundChannelAdapter, почему это невозможно?Я предполагаю, что есть какое-то дизайнерское решение, которое я не понимаю.

2) Каков предлагаемый способ определения HttpRequestExecutingMessageHandler без использования файлов конфигурации XML?Нужно ли настраивать компонент и устанавливать его вручную?

Заранее спасибо.

1 Ответ

0 голосов
/ 25 февраля 2019

@ServiceActivator полностью охватывает эту функциональность.В отличие от @Transformer он не требует возвращаемого значения.Таким образом, ваш метод POJO может быть просто void, и поток будет останавливаться там аналогичным образом, как <outbound-channel-adapter> делает это в конфигурации XML.

Но в случае HttpRequestExecutingMessageHandler нам нужно беспокоиться о некоторыхдополнительная опция, чтобы сделать его односторонним и остановиться там без заботы о любом HTTP-ответе.

Итак, для HttpRequestExecutingMessageHandler вам нужно объявить bean-компонент вроде:

@Bean
@ServiceActivator(inputChannel = )
public HttpRequestExecutingMessageHandler httpRequestExecutingMessageHandler() {
    HttpRequestExecutingMessageHandler handler = new HttpRequestExecutingMessageHandler();
    handler.setExpectReply(false)
    return handler;
}

Я думаюВ любом случае нам нужно улучшить документы по этому вопросу, но вместо этого вы можете взглянуть на конфигурацию Java DSL: https://docs.spring.io/spring-integration/docs/current/reference/html/#http-java-config. Для удобства имеется Http.outboundChannelAdapter().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...