Spring数据什么时候连接到数据库

Spring Data when does it connect to the database

我一直在研究 Spring Data Rest,尤其是针对 cassandra,我和我的同事的其中一个问题是 Spring Data 何时连接到数据库。我们并不总是希望休息控制器连接到数据库,所以如果说我们有一个 class 扩展 CRUDRepository,spring 什么时候建立连接?它是否在应用程序本身启动期间连接到数据库?那是我们可以控制的吗?

例如,我在Spring的网站上实现了这个例子: https://spring.io/guides/gs/accessing-data-rest/

spring 在代码中的什么位置连接到数据库?

Spring 将在数据源初始化后立即连接到数据库。基本上,Spring 上下文将以某种方式变得活跃(Web 侦听器,手动调用它们)并开始创建 bean。一旦它到达数据源,就会建立连接并填充连接池。

当然以上是基于正常的开箱即用配置,一切都可以根据您的喜好进行设置。

因此,除非您决定自己控制连接,否则数据库连接将坐在那里等待使用。

不同意以上回答。 作为研究的一部分,我使用 bean 配置启动了数据源,然后更改了我的数据库密码(不是在我的 spring 应用程序中,而是真正的数据库用户名密码) 连接保持一段时间,然后在某个时间点(可能是空闲时间)它停止工作并抛出凭证异常。 这足以说明 JPA 不会保持连接等待使用,而是根据需要使用某种机制 occupy/release 数据库连接。