Spring Boot - どの接続プールが使用されているかを知る方法?

Spring Boot –使用されている接続プールを知る方法

Spring Bootでは、@Autowiredjavax.sql.DataSourceであり、現在実行中のアプリケーションで使用されているデータベース接続プールがわかります。

1. テストデフォルト

javax.sql.DataSourceを出力するSpringBootの例

Note
この公式のSpring Bootドキュメント–Connection to a production databaseを読んで、DataSource実装を選択するためのアルゴリズム– Tomcatプーリング、HikariCP、Commons DBCP、およびCommonsDBCP2を理解してください。

package com.example;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

import javax.sql.DataSource;

@SpringBootApplication
public class SpringBootConsoleApplication implements CommandLineRunner {

    @Autowired
    DataSource dataSource;

    public static void main(String[] args) throws Exception {
        SpringApplication.run(SpringBootConsoleApplication.class, args);
    }

    @Override
    public void run(String... args) throws Exception {

        System.out.println("DATASOURCE = " + dataSource);

    }

}

出力、Spring BootはデフォルトでTomcatプーリングを使用しています。

DATASOURCE = org.apache.tomcat.jdbc.pool.DataSource@7c541c15...

2. テストHikariCP

別の接続プール(HikariCPなど)に切り替えるには、デフォルトを除外して、クラスパスにHikariCPを含めるだけです。

pom.xml

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

        
        
            com.zaxxer
            HikariCP
            2.6.0
        

出力

DATASOURCE = HikariDataSource (HikariPool-1)