Spring Boot - Как узнать, какой пул соединений используется?

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