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

1概要

Hikari は、コネクションプーリングメカニズムを提供するJDBCのDataSource実装です。

他の実装と比較して、軽量でhttps://github.com/brettwooldridge/HikariCP#jmh-benchmarks-checkered__flag[より優れたパフォーマンス]になることをお約束します。光の紹介については、https://www.baeldung.com/hikaricp[この記事]を参照してください。

このクイックチュートリアルでは、Hikari DataSource を使用するようにSpring Boot 1またはSpring Boot 2アプリケーションを設定する方法を示します。

2 Spring Boot 1.x でHikariを設定する

Spring Boot 1.xはデフォルトでhttps://tomcat.apache.org/tomcat-8.5-doc/jdbc-pool.html[Tomcat JDBC Connection Pool]を使用します。

spring-boot-starter-data-jpa pom.xml に含めるとすぐに、推移的にTomcat JDBC実装への依存関係を含めることになります。実行時に、Spring BootはTomcat DataSource を作成して使用します。

代わりにHikari Connection Poolを使用するようにSpring Bootを設定するには、2つの選択肢があります。

2.1. Mavenの依存関係

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

<dependency>
    <groupId>com.zaxxer</groupId>
    <artifactId>HikariCP</artifactId>
    <version>3.2.0</version>
</dependency>

最新版はhttps://search.maven.org/classic/#search%7C1%7Cg%3A%22com.zaxxer%22%20AND%20a%3A%22HikariCP%22[Maven Central]で見つけることができます。 。

2.2. 明示的な設定

Spring BootにHikariを使用させる最も安全な方法は、DataSource実装を明示的に設定することです。

これを行うには、プロパティ __spring.datasource.type を、使用したい DataSource__実装の完全修飾名に設定するだけです。

@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. Tomcat JDBC依存関係の削除

2番目のオプションは、Spring BootにHikariの DataSource 実装自体を見つけさせることです。

  • Spring BootがクラスパスでTomcat DataSource を見つけられない場合は、自動的にHikari DataSource nextが検索されます。** 検出アルゴリズムはhttps://docs.spring.io/spring-boot/docs/1.5.15に記載されています。 .RELEASE/reference/htmlsingle/#ブート機能 - 運用データベースへの接続[リファレンスマニュアル]。

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

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-jdbc</artifactId>
         </exclusion>
     </exclusions>
</dependency>

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

** 3 Spring Boot 2.xで光を設定する

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

これがSpring Boot 1.xからの変更点です。

  • 光への依存関係が自動的に含まれるようになりました

spring-boot-starter-data-jpa 内 ** 自動的に DataSource を決定する発見アルゴリズム

実装はTomcatJDBCよりもHikariを優先するようになりました(https://docs.spring.io/spring-boot/docs/2.0.4.RELEASE/reference/htmlsingle/[参照マニュアル]を参照)。

したがって、Spring Boot 2.xをベースにしたアプリケーションでHikariを使用したいのであれば、何もする必要はありません。

4ひかりの設定パラメータの調整

他の DataSource 実装を超えるHikariの利点の1つは、それが多くの設定パラメータを提供するという事実です。

接頭辞 spring.datasource.hikari を使用し、Hikariパラメータの名前を追加することで、これらのパラメータの値を指定できます。

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

わかりやすい説明付きのすべてのHikariパラメータのリストは、https://github.com/brettwooldridge/HikariCP#configuration-knobs-baby[光Githubサイト]にあります。

5結論

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

Spring Boot 1.xの例のコードはhttps://github.com/eugenp/tutorials/tree/master/spring-4[here]から入手でき、Spring Boot 2.xの例のコードはhttps://入手可能です//github.com/eugenp/tutorials/tree/master/spring-5[こちら]。