我设法通过初始化来修复它
HikariConfig
先吃豆子,然后把它传给
HikariDataSource
建造师:
@Bean("myDatasourceHikariConfig")
@ConfigurationProperties(prefix = "spring.datasource")
public HikariConfig hikariConfig() {
return new HikariConfig();
}
@Bean("myDatasource")
public DataSource myDataSource(@Qualifier("myDatasourceHikariConfig") HikariConfig hikariConfig) {
return new HikariDataSource(hikariConfig);
}
对应的部分
application.properties
:
spring.datasource.jdbc-url: jdbc-url
spring.datasource.username: username
spring.datasource.password: WRONG
spring.datasource.driver-class-name: driver
spring.datasource.type: com.zaxxer.hikari.HikariDataSource
#Following are hikari specific properties
spring.datasource.initializationFailTimeout: 5000
spring.datasource.maximum-pool-size: 10
spring.datasource.minimum-idle: 1
spring.datasource.connection-timeout: 30000
spring.datasource.pool-name: datasource-pool
请注意,所有这些属性都只是带有前缀
spring.datasource
(我不用
spring.datasource.hikari
从…起
DataSourceAutoConfiguration.class
).
使用
DataSourceBuilder
因为初始化datasource会导致与您描述的完全相同的行为(应用程序会抛出一个关于错误密码的异常,但仍会继续启动)。我确认,只有当您没有自定义事务管理器时,它才会停止启动。
我正在使用Spring Boot 2.1.9和HikariCP 3.2.0。