Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.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 组件扫描不扫描子包_Spring_Maven_Spring Data Jpa_Component Scan - Fatal编程技术网

Spring 组件扫描不扫描子包

Spring 组件扫描不扫描子包,spring,maven,spring-data-jpa,component-scan,Spring,Maven,Spring Data Jpa,Component Scan,我遇到了一个奇怪的问题。我的印象是,如果指定扫描顶级包,组件扫描将递归扫描子包 我的存储库和实体是项目的maven依赖项。它们位于包名com.foo.bar.xyz下,而我的应用程序配置位于包com.foo.bar下。当我编写@ComponentScan(basePackages=“com.foo.bar”)以及@EnableJpaRepositories时,它给出了一个找不到存储库bean的错误 但是,当我指定一个顶级存储库包,如@EnableJpaRepositories(basePacka

我遇到了一个奇怪的问题。我的印象是,如果指定扫描顶级包,组件扫描将递归扫描子包

我的存储库和实体是项目的maven依赖项。它们位于包名com.foo.bar.xyz下,而我的应用程序配置位于包com.foo.bar下。当我编写
@ComponentScan(basePackages=“com.foo.bar”)
以及
@EnableJpaRepositories
时,它给出了一个找不到存储库bean的错误

但是,当我指定一个顶级存储库包,如
@EnableJpaRepositories(basePackages=com.foo.bar.xyz)
,以及如上所述的组件扫描时,它可以很好地检测到存储库

现在发生这种情况仅仅是因为存储库和实体被作为maven依赖项注入?那么组件的递归部分是扫描子包还是子目录呢

现在发生这种情况仅仅是因为存储库和实体 作为maven依赖注入

  • 不,不是
组件的递归部分也会扫描,扫描子包 还是子目录

  • 是组件扫描在子包中进行递归搜索

此处详细说明
@ComponentScan
旨在搜索具有
@Component
或其子类型(如
@Controller
)的所有类,而通过使用
@enableJPareposities
注释注释PersistenceContext类来启用Spring数据JPA,并配置扫描的基本包当SpringDataJPA为存储库接口创建实现时。因此,需要声明
@ComponentScan
@EnableJpaRepositories

的基本包信息供参考,我特别提到了
@EnableJpaRepositories
注释中要扫描的包