spring - spring-data 默认情况下是否总是在同一个请求中使用相同的持久化上下文?
问题描述
一个例子是,如果我的 spring 控制器有两个 Autowired 服务,并且两个服务都有一个也由 spring 控制的 PersistenceContext (我什么也不做),默认情况下在每个请求中都将共享相同的上下文?
解决方案
不,他们会使用不同的。持久性上下文 ( EntityManager
) 被定义为 JPA 中的线程绑定概念。因此,每个请求都会看到EntityManager
每个新请求的新实例。
对于获得EntityManager
注入的单例 Spring 组件,Spring 将为您自动装配一个代理实例,以便它可以轻松地交换支持实例。这是 Spring 容器的核心功能,不需要 Spring Data JPA 中的任何内容(请参阅此处的文档)。
推荐阅读
- javascript - 如何在 Javascript 中动态访问导入的函数?
- azure-devops - Azure DevOps 用户管理
- docker - 无法从 MacOS 中的主机访问 tezos 节点(在 Docker 中)
- java - 用列表转换对象
到不可变列表 - python - 关于自动化无聊的东西的问题:第 4 章
- python - Scipy: signal.detrend (type='constant' ) 究竟做了什么时间序列数据集,我可以在 python 中反转 signal.detrend 吗?
- elasticsearch - 如何将我的输入语句转换为 json 以将其作为输出参数传递?
- hl7-fhir - 将批量数据发送到 Azure FHIR 服务器
- c# - Microsoft 如何从 DLL 的元数据中隐藏 C# 内部类?
- regex - 正则表达式在拆分所有大写字母时仅找到 1 个匹配项