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

个人对s1装配失败的理解

容器中有两个bean都是StringStore类型,要把哪个自动装配给s1呢,spring糊涂了,因为@autowired是按类型自动装配的,有两个这样的类型的bean当然不好办了,报异常吧哈哈

正在回答

4 回答

这个我也是没有看懂,s1这个变量名,无法自动装配,如果@Qualifier指定,那还不如直接把变量名改成stringStore呢,但是为什么老师的s1又可以自动装配,这让我很是困惑。

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

public Store stringStoreTest() {

return new StringStore();

}

返回类型就是Store啊 ,多态嘛


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

可是老师用的是

@Bean(name = "stringStoreTest")

public Store stringStoreTest() {

System.out.println("s1 : " + s1.getClass().getName());

System.out.println("s2 : " + s2.getClass().getName());

return new StringStore();

}

把StringStroe改成了   Store 那 但是返回的类型没有变,不久相当于还是有两个StringStore类型吗  .  

求大神解释    

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

未卜先知

我也是一样的困惑
2016-12-13 回复 有任何疑惑可以回复我~

那就用@Resource或者用@autowired+@Qualifier就行了,用来区分两个类型一样的bean啊

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

慕后端2198842 回复 Auroras

@Autowired @Qualifier(value="stringStore") private Store<String> s1; 在属性上指定@Qualifier(value="stringStore") value为你要指定注入的bean的id
2016-10-26 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

个人对s1装配失败的理解

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