From 11b82cc6feeeff4252bc0a75403560c64bdc5a3f Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Mon, 17 Aug 2015 10:05:52 +0200 Subject: [PATCH] Properly guard DB health indicator The DataSource health indicator uses `JdbcTemplate` behind the scenes but nothing was checking that it is actually available. `DataSourcesHealthIndicatorConfiguration` is now disabled if `spring-jdbc` is not on the classpath. Fixes gh-3765 --- .../autoconfigure/HealthIndicatorAutoConfiguration.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/HealthIndicatorAutoConfiguration.java b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/HealthIndicatorAutoConfiguration.java index c3a3decbf05..db4dbd1b8e0 100644 --- a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/HealthIndicatorAutoConfiguration.java +++ b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/HealthIndicatorAutoConfiguration.java @@ -42,6 +42,7 @@ import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; @@ -57,6 +58,7 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.jdbc.core.JdbcTemplate; /** * {@link EnableAutoConfiguration Auto-configuration} for {@link HealthIndicator}s. @@ -94,6 +96,7 @@ public class HealthIndicatorAutoConfiguration { } @Configuration + @ConditionalOnClass(JdbcTemplate.class) @ConditionalOnBean(DataSource.class) @ConditionalOnProperty(prefix = "management.health.db", name = "enabled", matchIfMissing = true) public static class DataSourcesHealthIndicatorConfiguration {