Java jpa:repositories/@EnableJpaRepositories vs@Repository-spring

Java jpa:repositories/@EnableJpaRepositories vs@Repository-spring,java,spring,jpa,Java,Spring,Jpa,使用@EnableJpaRepositories或jpa:repositories(在xml上)是否会让开发人员不使用Spring的@Repository标记?当我查看Spring的示例指南时,他们的大多数示例都是在扩展Spring数据的JpaRepository或Crudepository接口的接口上不再使用@Repository标记 我试图同时使用它们,但Intellij警告我,它无法自动连接我的存储库,因为有多个bean。我试图删除xml文件中的jpa:repositories,但出现了一

使用
@EnableJpaRepositories
jpa:repositories
(在xml上)是否会让开发人员不使用Spring的
@Repository
标记?当我查看Spring的示例指南时,他们的大多数示例都是在扩展Spring数据的JpaRepository或Crudepository接口的接口上不再使用@Repository标记


我试图同时使用它们,但Intellij警告我,它无法自动连接我的存储库,因为有多个bean。我试图删除xml文件中的jpa:repositories,但出现了一个错误,应用程序无法为我的实体管理器创建bean。

这是两件不同的事情@Repository annotation比Spring数据早得多,用于告诉Spring将@Repository annotated components引发的所有异常转换为DataAccessException(此处有更多内容:)


在SpringData中,您拥有@EnableJpaRepositories+整个底层扫描和存储库bean生成机制,并且不需要用@repository标记存储库接口(或自定义类)。

这是两件不同的事情@Repository annotation比Spring数据早得多,用于告诉Spring将@Repository annotated components引发的所有异常转换为DataAccessException(此处有更多内容:)

在SpringData中,您拥有@EnableJpaRepositories+整个底层扫描和存储库bean生成机制,并且不需要使用@repository标记存储库接口(或自定义类)。

对于这一点,IMHO并不完全清楚。 第3.1.1章中说:

使用repositories元素查找Spring数据存储库,如“创建存储库实例”中所述。除此之外,它还为所有用@Repository注释的bean激活持久性异常转换,以便将JPA持久性提供程序引发的异常转换为Spring的DataAccessException层次结构

对我来说,这听起来好像你仍然需要显式地添加@Repository才能激活持久性异常转换。

我对此并不完全清楚。 第3.1.1章中说:

使用repositories元素查找Spring数据存储库,如“创建存储库实例”中所述。除此之外,它还为所有用@Repository注释的bean激活持久性异常转换,以便将JPA持久性提供程序引发的异常转换为Spring的DataAccessException层次结构

对我来说,这听起来像是为了激活持久性异常转换,您仍然需要显式地添加@Repository