Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.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
Java @在实现JpaRepository时不需要存储库?_Java_Spring Boot - Fatal编程技术网

Java @在实现JpaRepository时不需要存储库?

Java @在实现JpaRepository时不需要存储库?,java,spring-boot,Java,Spring Boot,我的spring boot应用程序中有一个存储库类。首先,我用@Repository对它进行了注释,然后实现了JpaRepository。现在我去掉了注释,它仍然有效 我看到JpaRepository有@NoRepositoryBean注释 这是怎么回事?或者这不起作用,并且我的应用程序中出现了一些奇怪的情况吗?确实没有必要将@Repository注释放在扩展JpaRepository的接口上;Spring通过扩展一个预定义的存储库接口来识别存储库 @NoRepositoryBean注释的目的是

我的spring boot应用程序中有一个存储库类。首先,我用
@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?没错,就是这样!谢谢是的,就是这样!我仍在为所有的注释而挣扎。它的评论质量在发布后安伟意识到了这一点。我的错!为什么呢?这毫无意义