You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决@Qualifier注解引发的Unsatisfied Dependency Exception异常?

问题原因&解决方法

你的代码存在3处核心配置错误,逐一调整即可修复:

  1. 包声明缺失
    你编写的Pump接口、ServiceB类、SpringDemo3启动类均未显式声明package springdemo3;。Java中未声明包的类默认归属无名包,而你的AppConfig配置的组件扫描路径仅为springdemo3包,无名包内的类不会被Spring扫描加载,因此无法识别到Pump类型的Bean。
    修复方案:给上述3个类都补全package springdemo3;声明。

  2. @Qualifier Bean名称拼写错误
    Spring默认给@Component标注的类生成Bean名的规则是「类名首字母小写,其余字符保持原大小写」,ElectricPump类对应的默认Bean名为electricPump,你代码中写的@Qualifier("electricpump")将P也写为小写,和实际Bean名不匹配,因此找不到对应注入对象。
    修复方案:两种二选一即可

  • 将@Qualifier("electricpump")修改为@Qualifier("electricPump")
  • 给ElectricPump类的@Component注解指定自定义名称:@Component("electricpump")
  1. @Primary注解放置位置错误
    @Primary是用来指定同类型Bean优先注入的注解,仅标注在类上或者@Bean定义方法上才会生效,你当前把它放在features()重写方法上完全无效,若后续需要优先级逻辑需要调整位置,不需要的话可以直接删除该注解。
    修复方案:将@Primary移到ElectricPump类的上方,和@Component平级,或直接删除。

你提到的另一版可正常运行的代码,就是已经修正了上述的包声明、Bean名匹配问题,因此可以正常注入执行。调整完成后重新运行代码即可正常输出结果。

内容的提问来源于stack exchange,提问作者Mgambu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 17:18:00