gpt4 book ai didi

spring - 组件扫描不扫描子包

转载 作者:行者123 更新时间:2023-12-02 11:25:30 32 4
gpt4 key购买 nike

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

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

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

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

最佳答案

Now is this happening only because the repositories and entities are being injected as maven dependency?

  • 不,不是

So does the recursive part of component scan, scans the sub packages or the subdirectories?

  • 是的,组件扫描确实会在子包中递归搜索

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

的基础包信息

关于spring - 组件扫描不扫描子包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37915751/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com