Spring Boot – どの接続プールが使用されているかを知る方法?
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)
-
Note
この例を読む –
SpringブートJDBC MySQL HikariCPの例
参考文献
-
リンク://spring-boot/spring-boot-jdbc-mysql-hikaricp-example/[Spring
ブートJDBC + MySQL + HikariCPの例]