Spring Boot - как узнать, какой пул соединений используется?
В Spring Boot@Autowired
ajavax.sql.DataSource
, и вы будете знать, какой пул соединений с базой данных используется в текущем запущенном приложении.
1. Тест по умолчанию
Пример Spring Boot для печатиjavax.sql.DataSource
Note
Прочтите этот официальный документ Spring Boot -Connection
to a production database, чтобы понять алгоритм выбора реализацийDataSource
- пул Tomcat, HikariCP, Commons DBCP и Commons DBCP2.
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