Я хочу вернуть статус ok с кодом 200, только если мое приложение запущено и есть активное соединение с базой данных.
желаемое поведение проверки работоспособности:
Итак, я создал собственный класс проверки работоспособности, но я не знаю, как проверить, активно ли соединение с базой данных и действительно ли оно весенним способом.
@Component
public class HealthCheck implements HealthIndicator {
@Override
public Health health() {
int errorCode = check();
if (errorCode != 0) {
return Health.down()
.withDetail("Error Code", errorCode).build();
}
return Health.up().build();
}
public int check() {
// Check if there is an active connection to the database
return 0;
}
}
Я не знал, что есть встроенный индикатор, который проверяет, доступен ли источник данных, после того, как я прочитал о DataSourceHealthIndicator, нет смысла реализовывать мою собственную проверку источника данных, спасибо !!
management.health.db.enabled=true
Почему вы не можете использовать встроенный
DataSourceHealthIndicator, который будет автоматически настроен, если в вашем приложении естьDataSource? Он выполнит запрос, соответствующий используемой вами базе данных, чтобы проверить ее доступность.