Java @在实现JpaRepository时不需要存储库?
我的spring boot应用程序中有一个存储库类。首先,我用Java @在实现JpaRepository时不需要存储库?,java,spring-boot,Java,Spring Boot,我的spring boot应用程序中有一个存储库类。首先,我用@Repository对它进行了注释,然后实现了JpaRepository。现在我去掉了注释,它仍然有效 我看到JpaRepository有@NoRepositoryBean注释 这是怎么回事?或者这不起作用,并且我的应用程序中出现了一些奇怪的情况吗?确实没有必要将@Repository注释放在扩展JpaRepository的接口上;Spring通过扩展一个预定义的存储库接口来识别存储库 @NoRepositoryBean注释的目的是
@Repository
对它进行了注释,然后实现了JpaRepository
。现在我去掉了注释,它仍然有效
我看到JpaRepository
有@NoRepositoryBean
注释
这是怎么回事?或者这不起作用,并且我的应用程序中出现了一些奇怪的情况吗?确实没有必要将
@Repository
注释放在扩展JpaRepository
的接口上;Spring通过扩展一个预定义的存储库
接口来识别存储库
@NoRepositoryBean
注释的目的是防止Spring将该特定接口本身视为存储库。JpaRepository
接口具有此注释,因为它本身不是存储库,它是由您自己的存储库接口扩展的,这些是应该选择的
或者这不起作用,我的应用程序中出现了一些奇怪的事情
它正常工作,并且在您的应用程序中没有出现任何奇怪的情况。我建议您使用
@EnableJpaRepositories
设置它。这将扫描Spring数据存储库
,即使它们没有用@Repository
注释
从javadoc:
注释以启用JPA存储库。默认情况下,将扫描带注释配置类的包以查找Spring数据存储库
您还可以指定
basePackages
/basepackagesclasses
来更改默认值。这不是强制性的。它将起作用的原因是,您可能已经指定使用@EnableJpaRepositories(“packagestoscan”)
对包进行框架化,以查找存储库。我建议使用您正在实现的@Repository类进行注释,例如:
@Repository
JpaRepositoryImpl implements JpaRepository
使用SpringDataJPA时,不需要显式指定存储库。spring data jpa扫描所有扩展存储库的接口并自动生成实现。您是否在存储库配置中创建了@EnableJpaRepositories?没错,就是这样!谢谢是的,就是这样!我仍在为所有的注释而挣扎。它的评论质量在发布后安伟意识到了这一点。我的错!为什么呢?这毫无意义