Spring Integration Подключение шлюза к сервисному активатору - PullRequest
1 голос
/ 06 марта 2019

Я создал шлюз и канал уведомлений опроса, который шлюз использует для маршрутизации сообщений. Я хочу, чтобы сервисный активатор опросил канал и сделал свое дело. Но я не могу понять кое-что о Spring Integration.

В этом случае нам нужен бин IntegrationFlow? Не вызовет ли метод шлюза просто отправку сообщения через канал, и активатор службы может просто автоматически опрашивать, когда появляется новое сообщение?

ConfigurationClass:

@EnableIntegration
@Configuration
@IntegrationComponentScan
class IntegrationConfiguration {

  @Bean
  fun notificationChannel(): MessageChannel {
      return MessageChannels.queue().get()
  }

  @Bean
  fun integrationFlow(): IntegrationFlow {
      TODO()
  }
}

Gateway:

@MessagingGateway(defaultRequestChannel = "notificationChannel")
@Component
interface NotificationGateway {

  fun sendNotification(bytes: ByteArray)

}

Услуги:

@Service
class NotificationService {

  @ServiceActivator(inputChannel = "notificationChannel")
  fun sendNotification(bytes: ByteArray) {
      TODO()
  }
}

Я новичок в Spring Integration и у меня трудные времена, так как я не могу найти понятную документацию для своего уровня знаний, особенно в Spring Integration DSL.

Моя главная проблема может заключаться в том, что я теперь понимаю использование компонента IntegrationFlow Bean

1 Ответ

2 голосов
/ 06 марта 2019

Для простого варианта использования, подобного вашему, вам действительно не нужен IntegrationFlow. Простого @ServiceActivator, который есть у вас сейчас, вполне достаточно для обработки сообщений от notificationChannel. В этой конфигурации @ServiceActivator вам нужно только @Poller, поскольку ваша notificationChannel - это PollableChannel и она не предназначена для подписки.

См. Справочное руководство для получения дополнительной информации: https://docs.spring.io/spring-integration/docs/current/reference/html/#configuration-using-poller-annotation

Также обратите внимание на абзац в начале документа: https://docs.spring.io/spring-integration/docs/current/reference/html/#programming-considerations

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