В Spring Boot, есть ли способ проверить, что источник данных, созданный DataSourceAutoConfiguration, действителен и что соединение может быть создано?
Мы используем Spring Boot 2.1.2 вместе с Hikari 3.2.0 и Flyway 5.2.4.
Проблема, с которой я сталкиваюсь, заключается в том, что я хотел бы поднять предупреждениекогда наш источник данных недоступен. Это может быть связано с тем, что база данных не была названа правильно или сервер RDS не работает, когда приложение все еще инициализируется.
Как я понимаю порядок запуска:
- Spring Boot инициализирует источник данных
- Flyway выполняет миграцию
- Инициализирован пул соединений с БД
- Hibernate инициализирует
Что я хотел бы сделать - это проверить источник данных, созданный на шаге 1, до запуска Flyway. Flyway имеет систему обратного вызова, но она работает только при выполнении миграций, а не тогда, когда не может получить соединение с БД. Я знаю о DataSourceHealthIndicator, который предоставляет SpringBoot, но, насколько я могу судить, он запускается только тогда, когда вызывается конечная точка Actuator. Есть ли способ проверить источник данных (создать новое соединение) или принудительно вызвать DataSourceHealthIndicator перед автоматической настройкой Flyway?