如何使用Spring为HikariCP设置数据源?

我正在尝试将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>()

谁能告诉我如何解决这个问题?

回答:

你需要在bean配置上编写此结构(这是你的数据源):

<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">

<property name="poolName" value="springHikariCP" />

<property name="connectionTestQuery" value="SELECT 1" />

<property name="dataSourceClassName" value="${hibernate.dataSourceClassName}" />

<property name="maximumPoolSize" value="${hibernate.hikari.maximumPoolSize}" />

<property name="idleTimeout" value="${hibernate.hikari.idleTimeout}" />

<property name="dataSourceProperties">

<props>

<prop key="url">${dataSource.url}</prop>

<prop key="user">${dataSource.username}</prop>

<prop key="password">${dataSource.password}</prop>

</props>

</property>

</bean>

<!-- HikariCP configuration -->

<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">

<constructor-arg ref="hikariConfig" />

</bean>

这是我的示例,正​​在运行。你只需要将属性放在hibernate.properties上,然后进行设置即可:

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

<property name="locations">

<list>

<value>classpath:hibernate.properties</value>

</list>

</property>

</bean>

Obs .:版本为

log4j:1.2.16

springframework:3.1.4。Release

HikariCP:1.4.0

属性文件(hibernate.properties):

hibernate.dataSourceClassName=oracle.jdbc.pool.OracleDataSource

hibernate.hikari.maximumPoolSize=10

hibernate.hikari.idleTimeout=30000

dataSource.url=jdbc:oracle:thin:@localhost:1521:xe

dataSource.username=admin

dataSource.password=

以上是 如何使用Spring为HikariCP设置数据源? 的全部内容, 来源链接: utcz.com/qa/430895.html

回到顶部