Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot 如何检查带有多个数据源的spring boot应用程序的连接池设置值_Spring Boot_Spring Data Jpa_Connection_Spring Boot Actuator - Fatal编程技术网

Spring boot 如何检查带有多个数据源的spring boot应用程序的连接池设置值

Spring boot 如何检查带有多个数据源的spring boot应用程序的连接池设置值,spring-boot,spring-data-jpa,connection,spring-boot-actuator,Spring Boot,Spring Data Jpa,Connection,Spring Boot Actuator,我有使用SpringDataJPA的SpringBoot应用程序。我正在连接到多个数据源(不同的数据库)。我想检查这两个数据源的连接池设置值 做同样的事情最简单的方法是什么 我使用的是Spring boot版本1.5.4.0。我的数据库是DB2。通常用于应用程序: import javax.sql.DataSource; @SpringBootApplication public class SpringBootConsoleApplication implements CommandLine

我有使用SpringDataJPA的SpringBoot应用程序。我正在连接到多个数据源(不同的数据库)。我想检查这两个数据源的连接池设置值

做同样的事情最简单的方法是什么


我使用的是Spring boot版本1.5.4.0。我的数据库是DB2。

通常用于应用程序:

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);

    }
}
对于测试:

import javax.sql.DataSource;

import static org.junit.Assert.assertEquals;

@RunWith(SpringRunner.class)
@SpringBootTest
public class BankConceptTests {
    @Autowired
    private DataSource dataSource;
    @Test
    public void contextLoads() {
        System.out.println("DATASOURCE = " + dataSource);
        assertEquals("com.zaxxer.hikari.HikariDataSource", dataSource.getClass().getName());
    }
}
数据库存储库打印连接池详细信息的示例类:

package com.threadminions.service;

import javax.sql.DataSource;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class DatabaseRepository {

    @Autowired
    DataSource dataSource;

    /***
     * If you are using DBCP connection pooling then use this method to get the connection details
     */
    /*public void printDBCPConnectionDetails()
    {
        BasicDataSource basicDataSource = (BasicDataSource) dataSource;
        System.out.println("Instace of DBCP basic data source: " + basicDataSource);
        System.out.println("Driver class name: " + basicDataSource.getDriverClassName());
        System.out.println("Max idle connection: " + basicDataSource.getMaxIdle());
        System.out.println("Total connection: " + basicDataSource.getMaxTotal());
    }*/

    /***
     * If using Hikari connection pooling
     */
    /*public void printHikariConnectionDetails()
    {
        HikariDataSource ds = (HikariDataSource)dataSource;
        System.out.println("Instace of DBCP basic data source: " + ds);
        System.out.println("Driver class name: " + ds.getDriverClassName());
        System.out.println("Connection Pool size : " + ds.getMaximumPoolSize());
        System.out.println("Url: " + ds.getJdbcUrl());

    }*/

    /***
     * If using C3P0 connection pooling
     */
    /*public void printC3P0ConnectionDetails()
    {
        ComboPooledDataSource ds = (ComboPooledDataSource) dataSource;
        System.out.println("Instace of DBCP basic data source: " + ds);
        System.out.println("Connection Pool size : " + ds.getMaxPoolSize());
        System.out.println("Min connection pool size: " + ds.getMinPoolSize());
        System.out.println("Max statements: " + ds.getMaxStatements());
        System.out.println("Url: " + ds.getJdbcUrl());
    }*/
}
详情见: