unhurried

コンピュータ関連ネタがほとんど、ときどき趣味も…

Spring Boot DBコネクションプール

Spring Boot(Spring Data JPA)でコネクションプールを設定する方法をまとめました。

ライブラリの自動選択

コネクションプールライブラリは以下の順序で選択される。(クラスパスにライブラリがあるか確認し、あればそのライブラリを選択し、なければ次のライブラリを確認する。)

  1. HikariCP
  2. Tomcat JDBC Connection Pool
  3. Commons DBCP2

spring-boot-starter-jdbc もしくは spring-boot-starter-data-jpa を利用している場合は、HikariCPが依存関係として解決されるため、何も設定していなければHikariCPが選択される。

ライブラリの指定方法

application.properties(もしくはapplications.yaml)の spring.datasource.type プロパティに利用したいライブラリのDataSource( javax.sql.DataSource 継承クラス)を指定することで変更ができる。

HikariCPの場合

設定可能な項目はConfigurationを参照。

spring:
  datasource:
    driverClassName: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost/request_log
    username: user
    password: password
    type: com.zaxxer.hikari.HikariDataSource
    hikari:
      maximum-pool-size: 20
      minimum-idle: 10
Tomcat JDBC Connection Poolの場合

設定可能な項目はCommon Attributesを参照。

spring:
  datasource:
    driverClassName: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost/request_log
    username: user
    password: password
    type: org.apache.tomcat.jdbc.pool.DataSource
    tomcat:
      max-active: 20
      min-idle: 10

参考