Spring Boot - Comment savoir quel pool de connexions est utilisé?

Spring Boot - Comment savoir quel pool de connexion est utilisé?

Dans Spring Boot,@Autowiredest unjavax.sql.DataSource, et vous saurez quel pool de connexion de base de données utilise dans l'application en cours d'exécution.

1. Test par défaut

Exemple de Spring Boot pour imprimer unjavax.sql.DataSource

Note
Lisez ce document officiel Spring Boot -Connection to a production database, pour comprendre l'algorithme permettant de choisir les implémentations deDataSource - Tomcat pooling, HikariCP, Commons DBCP et 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);

    }

}

Sortie, Spring Boot utilise le pool Tomcat par défaut.

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

2. Tester HikariCP

Pour basculer vers un autre pool de connexions, par exemple HikariCP, excluez simplement la valeur par défaut et incluez HikariCP dans le chemin de classe.

pom.xml

        
            org.springframework.boot
            spring-boot-starter-jdbc
            
                
                    org.apache.tomcat
                    tomcat-jdbc
                
            
        

        
        
            com.zaxxer
            HikariCP
            2.6.0
        

Sortie

DATASOURCE = HikariDataSource (HikariPool-1)