带有 HikariDataSource 的 Spring Boot DataSourceBuilder 会抛出错误

问题描述 投票:0回答:1

我正在尝试学习创建数据源的不同方法。 在此示例中https://github.com/ivoronline/springboot_db_datasource_create_DataSourceBuilder我已使用DriverManagerDataSource.class成功创建数据源,如下所示

应用程序.属性

# ORACLE DB
my.spring.datasource.url      = jdbc:oracle:thin:@localhost:1522/orcl
my.spring.datasource.username = TEST
my.spring.datasource.password = LETMEIN

我的数据库配置

@Configuration
public class MyDatabaseConfig {

  //=========================================================================================================
  // DATA SOURCE
  //=========================================================================================================
  @Bean
  @ConfigurationProperties("my.spring.datasource")
  public DataSource dataSource() {
    return DataSourceBuilder.create().type(DriverManagerDataSource.class).build();
  }

}

但是当我尝试用 HikariDataSource.class 替换 DriverManagerDataSource.class 时,出现错误。我很困惑,因为在另一个 https://github.com/ivoronline/springboot_db_datasource_SaveSameEntityToDifferetnSchema 更复杂的项目中,这是有效的。

我是否正确理解 DriverManagerDataSource 不使用连接池,并且 Spring Boot 默认情况下使用 HikariDataSource 及其后面的连接池?那么这种方法将手动执行 Spring Boot 自动执行的操作?

java spring datasource boot
1个回答
0
投票

您是正确的,Spring Boot 将首先自动选择

HikariDataSource
(https://docs.spring.io/spring-boot/reference/data/sql.html#data.sql.datasource.connection-pool),但是它必须是您项目中的依赖项。通常,您可以通过包含依赖项
spring-boot-starter-jdbc
来自动引入 Hikari。 这样,您就可以将代码更改为以下内容:

  @Bean
  @ConfigurationProperties("my.spring.datasource")
  public DataSource dataSource() {
    return DataSourceBuilder.create().build();
  }

您提供的链接对我不起作用,所以我无法查看您的具体项目,但我猜测您缺少依赖项。

© www.soinside.com 2019 - 2024. All rights reserved.