SuperAPI AI 工具集

spring-boot-dependency-injection

设计与创作

查看项目

更新于 10-15 21:52

技能介绍

用途:该技能为 Spring Boot 项目提供依赖注入(DI)模式指导,重点是构造器优先的设计方式,帮助开发者编写易测试、依赖清晰的 Spring 组件。

主要能力:

  • 通过构造器注入强制依赖,保持字段 final,便于不启动 Spring 直接单测。
  • 可选协作者用 ObjectProvider、条件 Bean(@ConditionalOnProperty、@ConditionalOnMissingBean)或 no-op 实现处理,避免 null 驱动装配。
  • 同类型多 Bean 时使用 @Primary 指定默认实现,@Qualifier 指定命名变体。
  • 用最小上下文测试验证装配,再逐步加入切片测试或完整 @SpringBootTest。
  • 将第三方对象创建、条件逻辑、环境相关装配放入 @Configuration 与 @Bean 方法。

使用场景:新建 @Service、@Component、@Repository、@Configuration 类;重构遗留代码中的字段注入;处理同类型多 Bean;处理可选功能、适配器或集成;排查循环依赖与上下文启动失败;为构造器单测做准备。

限制与警告:字段注入隐藏依赖、增加测试难度;循环依赖通常是设计问题,不应仅用 @Lazy 掩盖;滥用 @Qualifier 会降低可读性;可选协作者在缺失时仍需确定性行为;过早使用全上下文测试会掩盖装配失败的真实原因。

验证示例(保持原样): @SpringBootTest @ContextConfiguration(classes = UserService.class) class UserServiceWiringTest { @Autowired UserService userService; @Test void serviceIsInstantiated() { assertNotNull(userService); } }

参考资料包括 references/reference.md、references/examples.md、references/spring-official-dependency-injection.md;相关技能有 spring-boot-crud-patterns、spring-boot-rest-api-standards、unit-test-service-layer。具体安装命令与收费信息暂未提供。