将 maxConnectionLimit 设置为使用 Spring DataSourceBuilder.create() 手动创建的连接
Set maxConnectionLimit to Manually created connection using Spring DataSourceBuilder.create()
使用application.properties我们可以提供
spring.datasource.hikari.maximum-池大小=10
as spring 默认使用 Hikari 连接池。
但是当我们根据特定要求手动创建数据源时,我们不能使用 application.properties.
场景。
- 用户将动态配置数据源,此后连接对象应该可用。
- 为此,我们正在创建 DatasourceBuilder.create().build() 方法来创建数据源连接对象并将其设置到 bean 工厂中。
- 但是在使用 DataSourceBuilder.create().build() 方法创建数据源连接对象时,它会同时创建连接池和 10 个到数据库的连接。
- 我们想避免连接 pooing 并且只有一个连接。
我该怎么做?
您可以尝试设置 minimumIdle 属性。默认情况下,它设置为 maxPoolSize,因此最初会创建 10 个连接。
您可以参考此 link、https://github.com/brettwooldridge/HikariCP#frequently-used 中的 minimumIdle 部分
在创建自定义数据源时,我们可以创建 HikariDataSource 实例而不是 DataSource。
假设您正在使用 Spring 默认连接池 (Hikari)
public DataSource createCustomConnection(String driverClass, String url, String username, String password) {
HikariConfig config = new HikariConfig();
config.setDriverClassName(driverClass);
config.setJdbcUrl(url);
config.setUsername(username);
config.setPassword(password);
config.setMaximumPoolSize(MENTIONED_TOTAL_CONNECTIONS);
// Like this you can configure multiple properties here
HikariDataSource dataSource = new HikariDataSource(config);
return dataSource;
}
DataSource dataSource = createCustomConnection(...) // Pass Parameters here
到这里你已经创建了同时创建一个连接的数据源。
了解更多信息https://github.com/brettwooldridge/HikariCP#initialization
谢谢。
使用application.properties我们可以提供
spring.datasource.hikari.maximum-池大小=10
as spring 默认使用 Hikari 连接池。 但是当我们根据特定要求手动创建数据源时,我们不能使用 application.properties.
场景。
- 用户将动态配置数据源,此后连接对象应该可用。
- 为此,我们正在创建 DatasourceBuilder.create().build() 方法来创建数据源连接对象并将其设置到 bean 工厂中。
- 但是在使用 DataSourceBuilder.create().build() 方法创建数据源连接对象时,它会同时创建连接池和 10 个到数据库的连接。
- 我们想避免连接 pooing 并且只有一个连接。
我该怎么做?
您可以尝试设置 minimumIdle 属性。默认情况下,它设置为 maxPoolSize,因此最初会创建 10 个连接。
您可以参考此 link、https://github.com/brettwooldridge/HikariCP#frequently-used 中的 minimumIdle 部分在创建自定义数据源时,我们可以创建 HikariDataSource 实例而不是 DataSource。
假设您正在使用 Spring 默认连接池 (Hikari)
public DataSource createCustomConnection(String driverClass, String url, String username, String password) {
HikariConfig config = new HikariConfig();
config.setDriverClassName(driverClass);
config.setJdbcUrl(url);
config.setUsername(username);
config.setPassword(password);
config.setMaximumPoolSize(MENTIONED_TOTAL_CONNECTIONS);
// Like this you can configure multiple properties here
HikariDataSource dataSource = new HikariDataSource(config);
return dataSource;
}
DataSource dataSource = createCustomConnection(...) // Pass Parameters here
到这里你已经创建了同时创建一个连接的数据源。
了解更多信息https://github.com/brettwooldridge/HikariCP#initialization
谢谢。