[英]Spring ComponentScan excludeFilters annotation not working in Spring Boot Test context
[英]Spring boot Persistence Context annotation
我是 Spring Boot 的新手,并尝试在 Spring Boot 中创建一个基本的 REST 示例。 我正在从Spring Boot REST 示例网站获取帮助来创建一个基本示例。
大多数事情对我来说都很清楚,但我坚持使用一个注释,该注释用于使用以下代码从数据库中获取数据
package com.springbootrest.repository;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.transaction.Transactional;
import org.springframework.stereotype.Repository;
import com.springbootrest.model.BookDetails;
@Transactional
@Repository
public class BookDetailsRepoImpl implements BookDetailsRepo {
@PersistenceContext
private EntityManager entityManager;
public List<BookDetails> listBookDetails() {
return (List<BookDetails>) entityManager.createQuery("FROM BookDetails").getResultList();
}
}
我不明白@PersistenceContext
实际上是如何工作的 - 谁能解释一下?
在示例中,他们解释了使用 @PersistenceContext 背后的概念:
@PersistenceContext – 我们需要了解如何使用简单的注解@PersistenceContext 和它是什么来连接数据库。
@PersistenceContext 是 JPA 标准注释,它使您可以更好地控制要注入的持久性上下文。
代码中的@PersistenceContext注释用于指示EntityManager必须自动注入,换句话说,它的生命周期将由运行应用程序的容器管理(这是一件好事)。 另一种选择是通过不同的选项由您提供所有必需的配置(应用程序管理),所有这些配置都很麻烦(配置文件或 bean),并且冒着将您的应用程序绑定到某些特定于环境的配置的风险(这是一件坏事)。
我的答案是在好几年之后出现的,但这里是。
这个注解@PersistentContext
与你的应用程序上下文中定义的另一个 bean 一起工作:
<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
两者一起工作的方式是PersistenceAnnotationBeanPostProcessor
将查找适当的 EntityManagerFactory 以注入实体管理器,其中我们@PersistenceContext
注释的属性
我的理解是基于对这个问题的回答: 所以在这里提问
简而言之,这是一个使用实体管理器管理实体的空间(只是说)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.