Add support for HikariDataSource

We still prefer Tomcat if it is available (that can change
if the community asks loudly enough). Hikari is supported
via the same spring.datasource.* properties as Tomcat (and
DBCP), with some modifications:

* The validation and timeout settings are not as fine-grained
in Hikari, so many of them will simply be ignored. The most
common options (url, username, password, driverClassName) all
work as expected.

* The Hikari team recommends using a vendor-specific DataSource
via spring.datasource.dataSourceClassName and supplying it with
Properties (spring.datasource.hikari.*).

Hikari prefers the JDBC4 isValid() API (encapsulates vendor-
specific queries) which is probably a good thing, but we
haven't provided any explicit support or testing for that yet.

Fixes gh-418
This commit is contained in:
Dave Syer
2014-04-30 09:49:35 +01:00
parent f46d281b22
commit 50190a4de7
6 changed files with 320 additions and 5 deletions

View File

@@ -61,6 +61,7 @@
<hibernate-entitymanager.version>${hibernate.version}</hibernate-entitymanager.version>
<hibernate-jpa-api.version>1.0.1.Final</hibernate-jpa-api.version>
<hibernate-validator.version>5.0.3.Final</hibernate-validator.version>
<hikaricp.version>1.3.5</hikaricp.version>
<httpclient.version>4.3.3</httpclient.version>
<httpasyncclient.version>4.0.1</httpasyncclient.version>
<hsqldb.version>2.3.2</hsqldb.version>
@@ -145,6 +146,11 @@
<artifactId>jackson-datatype-joda</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>${hikaricp.version}</version>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>