Может ли мой Spring EventListener ожидать 2 события? - PullRequest
0 голосов
/ 07 октября 2019

У меня есть приложение SpringBoot, и я должен подключиться к серверу веб-сокетов для получения сообщений, которые мое приложение затем обрабатывает внутренне, используя встроенный FinitStateMachine (FSM).

Я хочу запуститьвызов connect () к серверу websocket только после:

  1. мое весеннее приложение инициализировано
  2. мой сборщик FSM завершил вызов build ()

Я использовал ApplicationEventPublisher Spring, чтобы публиковать пользовательское событие (FSMInitializedEvent) при сборке моего FSM. И код, который инициирует подключение к серверу веб-сокетов, ожидает этого пользовательского события, но я хочу, чтобы код моего разъема веб-сокета ТАКЖЕ ожидал Spring 101 *. Есть ли удобный способ сделать это?

Из сборки моего FSM ():

applicationEventPublisher.publishEvent( new FSMInitializedEvent() );

Внутри моего класса коннектора WebSocket:

@EventListener(FSMInitializedEvent.class) <-- HERE i want to listen for this other event too before progressing - ApplicationReadyEvent.class
    public void init() {
// code to initiate the connection
}

Я мог бы программно обработатьэто но ищет какое-то готовое к использованию элегантное решение. Кроме того, мой вопрос отличается от того, что было предложено здесь: Используйте аннотацию @EventListener для нескольких событий в Spring , поскольку я хочу, чтобы мой слушатель ждал , чтобы несколько событий произошло в качестве предварительного условия,прежде чем продолжить.

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