【发布时间】:2014-06-04 01:21:27
【问题描述】:
您好,我正在尝试将 HikariCP 与 Spring 一起用于连接池。我正在使用 jdbcTempLate 和 JdbcdaoSupport。
这是我的数据源 spring 配置文件:
<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource">
<property name="dataSourceClassName" value="oracle.jdbc.driver.OracleDriver"/>
<property name="dataSource.url" value="jdbc:oracle:thin:@localhost:1521:XE"/>
<property name="dataSource.user" value="username"/>
<property name="dataSource.password" value="password"/>
</bean>
但不幸的是,正在生成以下错误消息:
Cannot resolve reference to bean 'dataSource' while setting bean property 'dataSource'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in ServletContext resource [/WEB-INF/dispatcher-servlet.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.zaxxer.hikari.HikariDataSource]: No default constructor found; nested exception is java.lang.NoSuchMethodException: com.zaxxer.hikari.HikariDataSource.<init>()
谁能告诉我如何解决这个问题?
【问题讨论】:
-
使用 oracle.jdbc.pool.OracleDataSource 见github.com/brettwooldridge/…
-
在 xml 参数中,这个答案和下面的许多都将 dataSourceClass 名称定义为 Hikari 以外的名称。当我们真正想要的是 Hikari 数据源时,将 oracle.jdbc 定义为 dataSourceClassName 的目的是什么?
-
在文档github.com/brettwooldridge/HikariCP#configuration-knobs-baby 中找到了我的答案。参数dataSourceClassName其实是指jdbc驱动类名。
标签: spring jdbc spring-jdbc jdbctemplate hikaricp