Springブートでは、

@ Autowired``が

javax.sql.DataSource`であり、現在実行中のアプリケーションでどのデータベース接続プールが使用されているかを知ることができます。

1.テストデフォルト

`javax.sql.DataSource`を出力するSpringブートの例

package com.mkyong;

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);

    }

}

出力、SpringBootはデフォルトでTomcatプールを使用しています。

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

2. HikariCPをテストする

他の接続プール(例えばHikariCP)に切り替えるには、デフォルトを除外し、HikariCPをクラスパスに含めます。

pom.xml

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

        <!-- connection pools -->
        <dependency>
            <groupId>com.zaxxer</groupId>
            <artifactId>HikariCP</artifactId>
            <version>2.6.0</version>
        </dependency>

出力

DATASOURCE = HikariDataSource (HikariPool-1)

参考文献


  1. HikariCP

  2. リンク://spring-boot/spring-boot-jdbc-mysql-hikaricp-example/[Spring

ブートJDBC + MySQL + HikariCPの例]