У меня есть настройка docker-compose для запуска моего приложения SpringBoot и базы данных MySQL.Если база данных запускается первой, мое приложение может успешно подключиться.Но если мое приложение запускается первым, база данных еще не существует, поэтому приложение выдает следующее исключение и завершает работу:
app_1 | 2018-05-27 14:15:03.415 INFO 1 --- [ main]
com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
app_1 | 2018-05-27 14:15:06.770 ERROR 1 --- [ main]
com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Exception during pool initialization
app_1 | com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:
Communications link failure
Я мог бы отредактировать файл docker-compose, чтобы убедиться, что база данных всегда активна до приложениязапускается, но я хочу, чтобы приложение могло обрабатывать этот случай самостоятельно и не сразу завершать работу, когда не может достичь адреса базы данных.
Существуют способы настройки источника данных в файле application.propertiesчтобы приложение снова подключилось к базе данных, как ответили здесь и здесь .Но это не работает при загрузочном соединении с источником данных.
Как я могу заставить мое приложение SpringBoot повторять соединение при запуске с базой данных через заданный интервал до тех пор, пока оно успешно не соединится с базой данных?