怎么回事 我按照老师的改了还是报错?
有没有人能解答一下?
有没有人能解答一下?
2017-01-13
个人理解,因为老师取得名字是s1,s2 @Autowired
按照ByName找不到叫name为s1,s2的bean,改成ByType寻找,结果发现s1定义的是Store<String>有两个返回值都是StringStore所以就不知道该用哪一个,如果你把s1改成方法的名字(getStringStore
)就会发现不会出错,因为@Autowired找到了一个叫getStringStore
的bean(前面讲过,@Bean默认用方法名字作为bean的name)这里就用的ByName寻找。
总结,老师用s1,s2做名字使得@Autowired用ByName找不到,改为ByType结果有两个StringStore,导致出错。
老师改成Store没报错我是不理解的,老师改完后执行测试我发现有段被剪掉了,细心的同学应该发现了,老师也许做了别的操作,这我就不知道了。按照老师的代码照敲编译器都不让我通过。
举报