1

After upgrading from springboot 2.7.9 to 3.0.0, I am unable to start. Below is my complete error message:

Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'dbHealthIndicator' defined in class path resource [com/ys/order/core/config/DataSourceHealthConfig.class]: Unsatisfied dependency expressed through method 'dbHealthIndicator' parameter 0: No qualifying bean of type 'javax.sql.DataSource' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}

@Configuration
@RefreshScope
public class DataSourceHealthConfig extends DataSourceHealthContributorAutoConfiguration {

    @Value("${spring.shardingsphere.datasource.master.validationQuery:select 1}")
    private String validationQuery;

    public DataSourceHealthConfig(ObjectProvider<DataSourcePoolMetadataProvider> metadataProviders) {
        super(metadataProviders);
    }

    @Bean
    public AbstractHealthIndicator dbHealthIndicator(DataSource dataSource) {
        return new DataSourceHealthIndicator(dataSource, validationQuery);
    }
}
spring:
  servlet:
    multipart:
      max-file-size: 20MB
      max-request-size: 20MB
  shardingsphere:
    datasource:
      names: master,slave0,slave1
      master:
        initial-size: 5
        min-idle: 5
        max-active: 10
        max-wait: 60000
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://***:3306/test?useUnicode=true&useSSL=false&useLegacyDatetimeCode=false&allowMultiQueries=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
        username: ***
        password: ***
        validationQuery: select 1
        testWhileIdle: true
        keepAlive: true
      slave0:
        initial-size: 5
        min-idle: 5
        max-active: 10
        max-wait: 60000
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://***:3306/test?useUnicode=true&useSSL=false&useLegacyDatetimeCode=false&allowMultiQueries=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
        username: ***
        password: ***
        validationQuery: select 1
        testWhileIdle: true
        keepAlive: true
      slave1:
        initial-size: 5
        min-idle: 5
        max-active: 10
        max-wait: 60000
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://***:3306/test?useUnicode=true&useSSL=false&useLegacyDatetimeCode=false&allowMultiQueries=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
        username: ***
        password: ***
        validationQuery: select 1
        testWhileIdle: true
        keepAlive: true
    masterslave:
      name: ms
      master-data-source-name: master
      slave-data-source-names: slave0,slave1
    props:
      sql:
        show: true
    enabled: true
Brian Clozel
  • 56,583
  • 15
  • 167
  • 176

0 Answers0