Spring boot 如何检查带有多个数据源的spring boot应用程序的连接池设置值
我有使用SpringDataJPA的SpringBoot应用程序。我正在连接到多个数据源(不同的数据库)。我想检查这两个数据源的连接池设置值 做同样的事情最简单的方法是什么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
我使用的是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());
}*/
}
详情见: