Spring Boot 执行器中的 DataSourceHealthIndicator 问题

vla*_*sfl 6 spring spring-boot

查看源代码,DataSourceHealthIndicator如果无法找出数据库,它将使用默认查询“SELECT 1;” 数据源的健康状态。

此查询在我的环境中失败。如何配置HealthCheckEndpoint以与自定义查询一起使用DatasourceHealthIndicator

Ste*_*oll 7

HealthIndicator您可以使用名称定义自己的名称dbHealthIndicator,它将代替默认值使用,例如

@Bean
public HealthIndicator dbHealthIndicator() {
    DataSourceHealthIndicator indicator = new DataSourceHealthIndicator(dataSource());
    indicator.setQuery("Your Query Here");
    return indicator;
}
Run Code Online (Sandbox Code Playgroud)

请注意,您可能希望共享正在使用的数据库类型和版本以及适合的查询,以便可以立即获得支持。Boot 已经适用于 HSQL、Derby 和 Oracle 以及所有支持“SELECT 1”的数据库