【发布时间】:2020-12-31 08:34:27
【问题描述】:
我是 SpringBoot 新手。
我有一个 Spring Boot 应用程序,我使用的数据库是 PostgreSQL,我使用的是 JdbcTemplate,我有 2 个数据源连接。 该代码工作正常,但我观察到在服务器状态仪表板的 PostgreSQL pgAdmin 中,它显示空闲模式下的连接池(比如 10 连接)。 虽然早些时候我使用单个数据源,但我观察到了同样的事情,但我通过在 application.properties 文件中设置一些属性来解决它。 例如:
spring.datasource.hikari.minimum-idle=somevalue
spring.datasource.hikari.idle-timeout=somevalue
如何使用多个数据源实现相同的目标。
属性文件
spring.datasource.jdbcUrl=jdbc:postgresql://localhost:5432/stsdemo
spring.datasource.username=postgres
spring.datasource.password=********
spring.datasource.driver-class-name=org.postgresql.Driver
spring.seconddatasource.jdbcUrl=jdbc:postgresql://localhost:5432/postgres
spring.seconddatasource.username=postgres
spring.seconddatasource.password=********
spring.seconddatasource.driver-class-name=org.postgresql.Driver
数据库配置
@Configuration
public class DbConfig {
@Bean(name="db1")
@Primary
@ConfigurationProperties(prefix="spring.datasource")
public DataSource firstDatasource()
{
return DataSourceBuilder.create().build();
}
@Bean(name = "jdbcTemplate1")
public JdbcTemplate jdbcTemplate1(@Qualifier("db1") DataSource ds) {
return new JdbcTemplate(ds);
}
@Bean(name="db2")
@ConfigurationProperties(prefix="spring.seconddatasource")
public DataSource secondDatasource()
{
return DataSourceBuilder.create().build();
}
@Bean(name="jdbcTemplate2")
public JdbcTemplate jdbcTemplate2(@Qualifier("db2") DataSource ds)
{
return new JdbcTemplate(ds);
}
}
【问题讨论】:
标签: postgresql spring-boot hikaricp