关于注册失败:expected single matching bean but found 2的问题

来源:4-8 Spring Bean装配之基于Java的容器注解说明——基于泛型的自动装配

阳光洒在路上就不怕心碎f

2017-03-06 22:20

敲黑板啦  ? 注入失败,出现如下的错误:Unsatisfied dependency expressed through field 's1';  和“expected single matching bean but found 2:***,***”你需要加入:@Qualifier(value = "***") 如下:

	@Autowired
	@Qualifier(value = "stringStore")
	private Store<String> s1;
	@Autowired
	@Qualifier(value = "integerStore")
	private Store<Integer> s2;
	
	

奇怪的是老师的没有加Qualifier为什么没有报错?

写回答 关注

4回答

  • qq_离夕_03503692
    2022-01-29 13:58:47

    我这5.2的spring的版本一样

  • 曾嗨森
    2018-08-10 15:14:52

    我也很奇怪为什么老师的不会报错。。。特地来评论区找答案。。。

  • 慕村8951117
    2018-01-20 16:50:13
    @Bean(name="stringStoretest")
     public Store stringtest() {
      //System.out.println(s1);
      //System.out.println(s2);
      return new StringStore();
     }
     @Bean(name="stringStoretest")
     public StingStore stringtest() {
      //System.out.println(s1);
      //System.out.println(s2);
      return new StringStore();
     }

    我很纳闷 老师把 返回类型 StingStore 改成 Store 返回的不还是  new StringStore()   StringStroe 具体类型的 容器还是会识别 他是 StringStroe 换件衣服就不认识了? 我测试了还是 会 报楼主的错误 只有用@Qualifier(value = "stringStore")过滤选择 才会没问题   我不知道老师的问什么对,又能解答的吗

    随意风儿

    应该是版本的问题。老师表达的意思是会根据泛型自动装配相应的类型。如果加了@Qualifier就直接指定了bean,体现不到@AutoWired装配时自动匹配类型。

    2018-05-14 17:44:44

    共 1 条回复 >

  • Copy_Er木子火曰立
    2017-03-07 00:39:39

    泛型!

    阳光洒在路上...

    我的也是泛型,不加的话会把报错,同一方法不能区分这两个bean

    2017-03-08 14:47:23

    共 1 条回复 >

Spring入门篇

为您带来IOC和AOP的基本概念及用法,为后续高级课程学习打下基础

268785 学习 · 963 问题

查看课程

相似问题