spring-data-jpa Hikari池连接何时工作?- Spring/Sping Boot

pcww981p  于 2022-11-10  发布在  Spring
关注(0)|答案(2)|浏览(262)

我对光或任何数据库池概念有以下疑问。
1.何时创建连接池?
假设我提到了spring.datasource.hikari.maximum-pool-size=50
它是否会创建50个数据库示例?
1.默认情况下,Spring作用域在单例中的类上,如何创建50个示例?

eit6fx6z

eit6fx6z1#

1:在创建第一个连接时将创建连接池。例如,在执行第一个SQL时。{@link com.zaxxer.hikari.HikariDataSource#getConnection()}
这是我的情况下,也许它是不同的根据ORM你正在使用。
连接示例将由连接池创建。{@link com.zaxxer.hikari.pool.HikariPool#poolEntryCreator} {@link com.zaxxer.hikari.pool.HikariPool#postFillPoolEntryCreator}
“spring.datasource.hikari.maximum-pool-size=50”表示连接池不会创建超过50个的连接示例。因此,这是连接池中连接示例数的限制。
2:Spring Bean默认为单例。但连接池中的连接示例不是“spring bean”,它们是从“new PoolEntry”创建的。{@link com.zaxxer.hikari.pool.HikariPool#createPoolEntry}

smdnsysy

smdnsysy2#

Connection pooling有助于减少每次遇到数据库调用时创建数据库连接的次数。
Pool只是一组连接(理想情况下是活动的)(就像我们有thread pool一样),当请求时将返回一个活动连接(或为第一个数据库请求创建一个),instance在这里是一个不合适的词!
为了回答您问题的第一部分,当遇到spring.datasource.hikari...属性时,它会在应用程序启动期间初始化。

下面的链接很好地解释了这个概念

https://coderstea.in/post/best-practices/jdbc-connection-pooling-explained-with-hikaricp/

相关问题