为了账号安全,请及时绑定邮箱和手机立即绑定

关于注册失败: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为什么没有报错?

正在回答

5 回答

我这5.2的spring的版本一样

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~
@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")过滤选择 才会没问题   我不知道老师的问什么对,又能解答的吗

0 回复 有任何疑惑可以回复我~
#1

随意风儿

应该是版本的问题。老师表达的意思是会根据泛型自动装配相应的类型。如果加了@Qualifier就直接指定了bean,体现不到@AutoWired装配时自动匹配类型。
2018-05-14 回复 有任何疑惑可以回复我~

泛型!

0 回复 有任何疑惑可以回复我~
#1

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

我的也是泛型,不加的话会把报错,同一方法不能区分这两个bean
2017-03-08 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Spring入门篇
  • 参与学习       268785    人
  • 解答问题       963    个

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

进入课程

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信