Spring Boot –使用されている接続プールを知る方法
Spring Bootでは、@Autowired
はjavax.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)
Note
この例を読む–Spring Boot
JDBC + MySQL + HikariCP example