我正在尝试配置一个简单的Hikari数据源和另一个数据源,这是Spring的AbstractRoutingDataSource的实现。我想将普通数据源用作我的defaultTargetDataSource
。
我想让spring用所有基于属性文件的配置为我创建一个普通的HikariDataSource。
当我完全不声明任何DataSource bean时,只需设置spring.datasource.url
属性,一切都很好。
但是,当我尝试使用以下任何一种方法自己创建普通的Hikari DataSource bean时,都会出现以下消息:
Caused by: java.lang.IllegalArgumentException: dataSource or
dataSourceClassName or jdbcUrl is required.
at
com.zaxxer.hikari.HikariConfig.validate(HikariConfig.java:955)
我尝试过的事情
@ConfigurationProperties(prefix = "spring.datasource")
DataSource defaultDataSource() {
return new HikariDataSource();
}
@ConfigurationProperties(prefix = "spring.datasource")
DataSource defaultDataSource() {
return DataSourceBuilder.create().build();
}
我尝试过的属性变化:
spring.datasource.url
spring.datasource.jdbcUrl
spring.datasource.jdbc-url
我在spring-boot-starter-data-jpa
中使用pom.xml
依赖项,当我自己未创建DataSource时,spring正在为我创建默认的默认项,效果很好。
如何获得spring来正确配置并给我简单的Hikari数据源?
当我创建AbstractRoutingDataSource实现时,我知道弹簧会退后并且根本不会创建任何数据源。如果有防止dataSource
bean退回@Autowire的方法,则该方法对我也适用。
PS:我确实看到了这个问题,但没有回答我的问题:How do I configure HikariCP in my Spring Boot app in my application.properties files?