У меня есть внутренний сервер (Jetty), который обрабатывает HTTP-запросы и взаимодействует с базой данных MySQL.
Это все связано с весной.
У меня также есть пользовательский интерфейс в Swing, который служит инструментом администратора (пользователь может взаимодействовать с БД и т. Д.).
Сейчас сервер и пользовательский интерфейс несколько связаны, что означает, что, когда основной класс начинает загружаться, он сначала запускает контекст Spring, а затем запускает пользовательский интерфейс (в потоке EDT).
По сути, до тех пор, пока пользовательский интерфейс работает, сервер прослушивает запросы.
У меня проблема в следующем:
Я хотел бы показать графический интерфейс после полной инициализации сервера, и на самом деле я бы предпочел во время запуска графического интерфейса подключиться к серверу и получить некоторые данные, чтобы они отображались после появления графического интерфейса на экране.
Прямо сейчас я достигаю этого, добавляя режим ожидания на несколько секунд, прежде чем начать создавать графический интерфейс в потоке EDT.
Это решает проблему, но задержка произвольна, и я думаю, это зависит от целевой машины.
Также это заставляет GUI занимать много времени, чтобы появиться (задержка теперь составляет 10 секунд).
Я пытаюсь выяснить лучший способ узнать, что контекст Spring и внутренняя версия Jetty полностью инициализированы перед отображением графического интерфейса.
Один из подходов, который я предполагаю, состоит в том, чтобы попытаться отправить запрос на сервер, и, если он потерпит неудачу, повторять попытки несколько раз, пока он не будет успешным, а затем показать GUI.
Но мне было интересно, есть ли более стандартный подход.
Любые пожелания приветствуются.