使用 @Autowired 和 @PersistenceContext 注释实体管理器有什么区别?应该首选哪一个



我正在使用spring-boot-starter-data-jpa开发一个Spring-Boot应用程序。我无法理解应该使用哪个注释来注入实体管理器? @Autowired@PersistenceContext

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

数据源

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

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

然后@PersistenceContext会给你更细粒度的你想要注入的东西。您可以在此处按定义的名称选择哪个数据源。还有其他一些选择。https://docs.oracle.com/javaee/7/api/javax/persistence/PersistenceContext.html

如果使用 @Autowire则只需按 Bean 名称注入可用的持久性上下文。如果您有 2 个或更多持久性上下文,则可能会由于歧义而失败。

相关内容

最新更新