Spring Bootで光接続プールを設定する

Spring BootでのHikari接続プールの構成

1. 概要

Hikariは、接続プールメカニズムを提供するJDBCDataSourceの実装です。

他の実装と比較して、軽量でbetter performingであることが約束されています。 ひかりの紹介については、this articleを参照してください。

このクイックチュートリアルでは、HikariDataSourceを使用するようにSpring Boot1またはSpringBoot2アプリケーションを構成する方法を示します。

参考文献:

JPAでの1対1の関係

JPAと1対1の関係を維持するための3つの異なる方法を学びます。

Hibernateを使用したSpring Boot

Spring BootとHibernate / JPAを統合するための迅速で実用的な入門書。

2. Spring Boot1.xを使用したHikariの構成

Spring Boot 1.xは、デフォルトでTomcat JDBC Connection Poolを使用します。

spring-boot-starter-data-jpapom.xmlに含めるとすぐに、TomcatJDBC実装への依存関係を推移的に含めます。 実行時に、Spring BootはTomcatDataSourceを作成して使用します。

代わりに光接続プールを使用するようにSpring Bootを構成するには、2つのオプションがあります。

2.1. メーベン依存

まず、pom.xmlにHikariへの依存関係を含める必要があります。


    com.zaxxer
    HikariCP
    3.2.0

最新バージョンはMaven Centralにあります。

2.2. 明示的な構成

Spring BootにHikariを使用するよう指示する最も安全な方法は、DataSource実装を明示的に構成することです。

これを行うには、単にset the property spring.datasource.type to the fully-qualified name of the DataSource implementation we want to use:

@RunWith(SpringRunner.class)
@SpringBootTest(
    properties = "spring.datasource.type=com.zaxxer.hikari.HikariDataSource"
)
public class HikariIntegrationTest {

    @Autowired
    private DataSource dataSource;

    @Test
    public void hikariConnectionPoolIsConfigured() {
        assertEquals("com.zaxxer.hikari.HikariDataSource", dataSource.getClass().getName());
    }
}

2.3. TomcatJDBC依存関係の削除

2番目のオプションは、Spring BootにHikariDataSourceの実装自体を検出させることです。

If Spring Boot cannot find the Tomcat DataSource in the classpath, it will automatically look for the Hikari DataSource next.検出アルゴリズムはreference manualで説明されています。

クラスパスからTomcat接続プールを削除するには、pom.xmlで除外します。


    org.springframework.boot
    spring-boot-starter-data-jpa
    
        
            org.apache.tomcat
            tomcat-jdbc
         
     

これで、前のセクションのテストは、spring.datasource.typeプロパティを設定しなくても機能します。

3. Spring Boot2.xを使用したHikariの構成

Spring Boot 2では、HikariがデフォルトのDataSource実装です。

これは、Spring Boot1.xからの変更点です。

  • Hikariへの依存関係がspring-boot-starter-data-jpaに自動的に含まれるようになりました

  • DataSourceの実装を自動的に決定する検出アルゴリズムは、TomcatJDBCよりもHikariを優先するようになりました(reference manualを参照)。

したがって、Spring Boot 2.xに基づくアプリケーションで光を使用する場合は、何の関係もありません。

4. Hikari構成パラメーターの調整

他のDataSourceの実装に対するHikariの利点の1つは、多くの構成パラメーターを提供するという事実です。

これらのパラメータの値は、プレフィックスspring.datasource.hikariを使用し、Hikariパラメータの名前を追加することで指定できます。

spring.datasource.hikari.connectionTimeout=30000
spring.datasource.hikari.idleTimeout=600000
spring.datasource.hikari.maxLifetime=1800000
...

Hikari Github Siteには、すべてのHikariパラメーターと適切な説明のリストがあります。

5. 結論

この記事では、Spring Boot 1.xアプリケーションでHikariDataSourceの実装を構成し、Spring Boot2.xの自動構成を活用する方法を学びました。

Spring Boot 1.xの例のコードはhereで利用可能であり、Spring Boot 2.xの例のコードはhereで利用可能です。