如何使用spring-boot-starter-data-r2dbc启用连接池?

pkln4tw6  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(986)

我有一个具有data-r2dbc依赖关系的spring启动应用程序。我使用postgresql作为数据库。
因此,我已经准备好了以下依赖项(gradle表示法):
org.springframework.boot:spring-boot-starter-data-r2dbc:2.3.5.RELEASE io.r2dbc:r2dbc-postgresql 我需要为r2dbc连接启用连接池。不幸的是,我找不到任何详尽的手册这样做。
根据这个相当过时的发行说明,我还必须补充 io.r2dbc:r2dbc-pool 使用 spring.r2dbc.pool.* 要配置池的属性。
另外,根据这个参考,我不需要手动打开池,因为如果 r2dbc-pool 在类路径上找到。
够了吗?还是我错过了什么?

vtwuwzda

vtwuwzda1#

回答我自己的问题。
太长,读不下去了
org.springframework.boot:spring-boot-starter-data-r2dbc:2.3.5.RELEASE 足够在默认情况下启用连接池
无需添加 io.r2dbc:r2dbc-postgresql 明确地
不需要放 :pool: 在本例中的url中
一些详细的发现。似乎有两种方法可以启用连接池:
:pool: 驱动程序块到url中,然后 io.r2dbc.pool.PoolingConnectionFactoryProvider#create 将负责创建连接池。这在中进行了描述https://github.com/r2dbc/r2dbc-pool#getting-开始
没有 spring.r2dbc.pool.enabled=false 在configs中(意味着它的缺失被解释为 true 默认情况下)。这样,连接池将由 org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations.Pool#connectionFactory . 我不确定,但它看起来像是一个通用的spring引导配置样式覆盖了特定于库的配置样式 :pool: 选项。
此选项是独立的,部分重叠,第二个选项优先。
第二个组件还评估 :pool: 在url中(请参阅 org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryConfigurations.PooledConnectionFactoryCondition )如果找到,则将连接池的创建委托给第一个连接池。
还有一个特别的结论——有明确的 spring.r2dbc.pool.enabled=false 如果存在连接池,则会导致创建连接池 :pool: 在url中。因此,禁用池的唯一方法是 spring.r2dbc.pool.enabled=false 以及省略 :pool: 同时在url中。

相关问题