如何解决使用Spring DataSourceBuilder.create将maxConnectionLimit设置为手动创建的连接
使用 application.properties ,我们可以提供
spring.datasource.hikari.maximum-pool-size = 10
在默认情况下使用Hikari连接池作为春季。 但是,当我们手动创建数据源作为特定要求时,我们不能使用application.properties。
场景。
- 用户将动态配置数据源,并且此后应该可以使用该连接对象。
- 为此,我们正在创建DatasourceBuilder.create()。build()方法来创建数据源连接对象并将其设置为bean工厂。
- 但是在使用DataSourceBuilder.create()。build()方法创建数据源连接对象时,它同时在创建连接池和与数据库的10个连接。
- 我们希望避免这种连接异常,并且只有一个连接。
我该怎么做?
解决方法
您可以尝试设置minimumIdle属性。默认情况下,它设置为maxPoolSize,因此最初会创建10个连接。
您可以在此链接中引用minimumIdle部分,https://github.com/brettwooldridge/HikariCP#frequently-used,
在创建自定义数据源时,我们可以创建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
谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。