Skip to content

Commit 11b82cc

Browse files
committed
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 spring-projectsgh-3765
1 parent 190f8a7 commit 11b82cc

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/HealthIndicatorAutoConfiguration.java

+3
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
4343
import org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration;
4444
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
45+
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
4546
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
4647
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
4748
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
@@ -57,6 +58,7 @@
5758
import org.springframework.context.annotation.Configuration;
5859
import org.springframework.data.mongodb.core.MongoTemplate;
5960
import org.springframework.data.redis.connection.RedisConnectionFactory;
61+
import org.springframework.jdbc.core.JdbcTemplate;
6062

6163
/**
6264
* {@link EnableAutoConfiguration Auto-configuration} for {@link HealthIndicator}s.
@@ -94,6 +96,7 @@ public HealthIndicator applicationHealthIndicator() {
9496
}
9597

9698
@Configuration
99+
@ConditionalOnClass(JdbcTemplate.class)
97100
@ConditionalOnBean(DataSource.class)
98101
@ConditionalOnProperty(prefix = "management.health.db", name = "enabled", matchIfMissing = true)
99102
public static class DataSourcesHealthIndicatorConfiguration {

0 commit comments

Comments
 (0)