diff --git a/uboot-core/src/main/java/com/chinaunicom/mall/ebtp/core/config/EBTPDataSourceHealthContributorAutoConfiguration.java b/uboot-core/src/main/java/com/chinaunicom/mall/ebtp/core/config/EBTPDataSourceHealthContributorAutoConfiguration.java index 2c69c15..26aeefd 100644 --- a/uboot-core/src/main/java/com/chinaunicom/mall/ebtp/core/config/EBTPDataSourceHealthContributorAutoConfiguration.java +++ b/uboot-core/src/main/java/com/chinaunicom/mall/ebtp/core/config/EBTPDataSourceHealthContributorAutoConfiguration.java @@ -5,19 +5,20 @@ import java.util.Map; import javax.sql.DataSource; import org.springframework.beans.factory.ObjectProvider; -import org.springframework.boot.actuate.autoconfigure.health.ConditionalOnEnabledHealthIndicator; import org.springframework.boot.actuate.autoconfigure.jdbc.DataSourceHealthContributorAutoConfiguration; import org.springframework.boot.actuate.health.AbstractHealthIndicator; import org.springframework.boot.actuate.jdbc.DataSourceHealthIndicator; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.jdbc.metadata.DataSourcePoolMetadataProvider; import org.springframework.context.annotation.Configuration; +import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource; /** * 解决 shardingjdbc 在 spring 2.3.1 及以上版本中健康监测异常问题 #6002 * * @author Ajaxfan */ -@ConditionalOnEnabledHealthIndicator("db") +@ConditionalOnProperty(name = "management.health.db.enabled", havingValue = "true", matchIfMissing = true) @Configuration public class EBTPDataSourceHealthContributorAutoConfiguration extends DataSourceHealthContributorAutoConfiguration { @@ -32,6 +33,9 @@ public class EBTPDataSourceHealthContributorAutoConfiguration extends DataSource */ @Override protected AbstractHealthIndicator createIndicator(DataSource source) { + if (source instanceof AbstractRoutingDataSource) { + return super.createIndicator(source); + } return new DataSourceHealthIndicator(source, "select 1"); }