spring - ComponentScan 顺序重要吗?

标签 spring spring-data spring-data-jpa spring-boot

我正在使用注释设置一个非常小的带有 Boot 的 Spring/REST/JPA 项目。

当我将 JPA 存储库类移到不同的包并在其包上调用 componentscan 时,我在具有 Autowired 存储库变量的 REST Controller 类中遇到了一些 Bean not found 错误。但是,当我的所有文件(共 5 个)都在同一个包中时,一切正常。

所以我想知道,尽管不太可能,组件扫描顺序是否重要?例如,如果一个类正在 AutoWiring 来自尚未“组件扫描”的包中的一些 bean,这会导致 Bean not found 错误吗?

最佳答案

不,Spring 会在适当的时候从文件和注释以及环境中加载所有配置信息。然后它根据它在内存中计算的依赖树创建bean(类的实例)。为了做到这一点,它必须在启动时对整个配置有一个很好的了解。从所有聚合配置信息派生的整个模型称为应用程序上下文。

在 Spring 的现代版本中,应用程序上下文在运行时是灵活的,因此并非所有配置都必须预先知道,但灵活的配置范围有限,必须仔细规划。

关于spring - ComponentScan 顺序重要吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24249804/

相关文章:

java - Spring Data MongoDB - 将二进制数据附加到现有的 GridFS 文件

java - Spring Data 和 Redis - 序列化 transient 字段

java - 如何使用 Spring Data JPA 查询 map 值?

java - SpringFox,带有 JpaRepository 的 Spring Data Rest - Swagger 无法识别带有 spring boot 的 Rest 存储库

java - 使用 @OneToMany 或 @ManyToMany 定位未映射的类(多数据库连接)

java - Spring JMS 无法连接到 JBoss EAP 7.1 ActiveMq Artemis

java - 如何在SPRING JPA查询结果中添加列名

java - Spring Data JPA save() 方法不遵循 hashcode/equals 约定

java - 添加 JPA 注释后的 JAXB IllegalAnnotationExceptions

java - 停止 Spring MVC 获取 LazyLoad 数据