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

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

敲黑板啦  ? 注入失败,出现如下的错误: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为什么没有报错?

提问者:阳光洒在路上就不怕心碎f 2017-03-06 22:20

个回答

  • 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")过滤选择 才会没问题   我不知道老师的问什么对,又能解答的吗

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

    泛型!