默认情况下,spring数据是否总是在同一请求中使用相同的持久性上下文?

默认情况下,spring数据是否总是在同一请求中使用相同的持久性上下文?,spring,jpa,dependency-injection,spring-data-jpa,spring-data,Spring,Jpa,Dependency Injection,Spring Data Jpa,Spring Data,一个例子是,如果我的spring控制器有两个自动连接的服务,并且两个服务都有一个PersistenceContext也由spring控制(我什么也不做),那么默认情况下,这两个服务在每个请求中都会共享相同的上下文吗 不,他们将使用不同的。持久性上下文(EntityManager)在JPA中定义为线程绑定的概念。因此,对于每个新请求,每个请求都将看到一个新的EntityManager实例 对于注入了EntityManager的单例Spring组件,Spring将自动连接一个代理实例,以便可以轻松地

一个例子是,如果我的spring控制器有两个自动连接的服务,并且两个服务都有一个PersistenceContext也由spring控制(我什么也不做),那么默认情况下,这两个服务在每个请求中都会共享相同的上下文吗

不,他们将使用不同的。持久性上下文(
EntityManager
)在JPA中定义为线程绑定的概念。因此,对于每个新请求,每个请求都将看到一个新的
EntityManager
实例

对于注入了
EntityManager
的单例Spring组件,Spring将自动连接一个代理实例,以便可以轻松地交换备份实例。这是一个核心的Spring容器特性,不需要SpringDataJPA中的任何内容(参见文档)