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