Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot 用@Autowired和@PersistenceContext注释EntityManager有什么区别?哪一个应该优先?_Spring Boot_Jpa_Spring Data Jpa - Fatal编程技术网

Spring boot 用@Autowired和@PersistenceContext注释EntityManager有什么区别?哪一个应该优先?

Spring boot 用@Autowired和@PersistenceContext注释EntityManager有什么区别?哪一个应该优先?,spring-boot,jpa,spring-data-jpa,Spring Boot,Jpa,Spring Data Jpa,我正在使用开发一个Spring启动应用程序。我无法理解应该为EntityManager使用哪个注释? @Autowired或@PersistenceContext 我知道@PersistenceContext是JPA注释,而@Autowired属于Spring。但在内部,它们如何发挥作用? 我已经看过了。但无法理解确切的原因。数据源就是数据源。例如,这可以是一个数据库 如果需要多个数据源,可以选择在persistence.xml文件中定义它们。在这里,您可以定义多个并按名称分隔它们 @Persi

我正在使用开发一个Spring启动应用程序。我无法理解应该为EntityManager使用哪个注释?
@Autowired
@PersistenceContext

我知道
@PersistenceContext
是JPA注释,而
@Autowired
属于Spring。但在内部,它们如何发挥作用?
我已经看过了。但无法理解确切的原因。

数据源就是数据源。例如,这可以是一个数据库

如果需要多个数据源,可以选择在persistence.xml文件中定义它们。在这里,您可以定义多个并按名称分隔它们

@PersistenceContext将为您提供更多您想要注入的内容。在这里,您可以按定义的名称选择哪个数据源。还有其他一些选择。


如果使用@Autowire,您只是通过bean名称注入可用的持久性上下文。如果您有两个或多个持久性上下文,这可能会因为歧义而失败。

可能重复@ThomasAndolf是的,这是重复的,我的问题的描述是这样的。如果您能帮助我理解这个概念,请告诉我。您是否有一个具体的例子,其中Spring Boot中使用了多个数据源,并且使用了PersistenceContext?与EntityManager自动连线相比,PersistenceContext提供了哪些细粒度控件?默认情况下,spring不会加载persistence.xml。你必须手动设置它。配置persistence.xml是一门科学:例如,@persistencecontext上的细粒度设置可以定义上下文是事务管理的还是扩展管理的,这意味着它应该绑定到事务还是绑定到bean的生命周期。如今,在微服务中,您几乎不再使用persistence.xml了,它变得笨重而冗长。如果您想了解persistence在java中的工作原理,您应该在中学习persistence api