知识卡片

包结构与组件扫描范围的关系

专业/工作 · 618.g

内容

推荐做法是把应用主类放在root package下,其余所有代码组织成root package的子包。这不只是代码整洁的习惯,而是有实际约束:主类上的自动配置与组件扫描注解,默认只会扫描它所在包及其子包,一旦某些类的包路径脱离了这个层级,就不会被自动扫描到,需要额外用注解手动指定扫描路径或显式声明Bean才能补救。发散:这说明框架的”默认行为”往往隐含着对代码组织方式的假设——目录结构表面上是风格问题,实际上是和框架的隐式扫描机制绑定在一起的架构约束,破坏约定就要多写补救配置。

参考来源

《Spring Boot应用开发实战》第1章《Spring Boot基础知识》