春季 4 光连接池类投射异常



我希望在我的Spring 4应用程序中使用Hikari连接池。该数据库是Google Cloud SQL Postgres数据库。

我在pom.xml中有以下依赖关系:

<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.1.1</version>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>3.3.1</version>
</dependency>

在我的应用程序上下文.xml中,我有:

<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
<property name="poolName" value="springHikariCP" />
<property name="connectionTestQuery" value="SELECT 1" />
<property name="dataSourceClassName" value="org.postgresql.Driver" />
<property name="maximumPoolSize" value="10" />
<property name="idleTimeout" value="30000" />
<property name="dataSourceProperties">
<props>
<prop key="url">jdbc:postgresql://google/mydatabase?cloudSqlInstance=projectId:regionName:myInstance&amp;socketFactory=com.google.cloud.sql.postgres.SocketFactory</prop>
<prop key="user">postgres</prop>
<prop key="password">mypassword</prop>
</props>
</property>
</bean>

<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
<constructor-arg ref="hikariConfig" />
</bean>

但是我遇到了以下异常:

Caused by: java.lang.ClassCastException: Cannot cast org.postgresql.Driver to javax.sql.DataSource
at java.lang.Class.cast(Class.java:3369)
at com.zaxxer.hikari.util.UtilityElf.createInstance(UtilityElf.java:102)

可能出现什么问题?

org.postgresql.jdbc.Driver

不是javax.sql.DataSource,它是一个java.sql.Driver,所以它不适用于属性dataSourceClassName因为该属性需要一个javax.sql.DataSource类名。

如果要使用驱动程序(而不是DataSource(,则应使用属性driverClassName

所以:

<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
<property name="poolName" value="springHikariCP" />
<property name="connectionTestQuery" value="SELECT 1" />
<property name="driverClassName" value="org.postgresql.Driver" />
...

Using Hikari推荐的PostgreSQL数据源: org.postgresql.ds.PGSimpleDataSource

<property name="dataSourceClassName" value="org.postgresql.ds.PGSimpleDataSource" />

数据库驱动程序数据源类

PostgreSQL pgjdbc-ng com.impossibl.postgres.jdbc.PGDataSource PostgreSQL PostgreSQL org.postgresql.ds.PGSimpleDataSource

相关内容

  • 没有找到相关文章

最新更新