我检查了下applicationContext.xml,里面的bean ID拼写没问题,在单元测试中的getBean拼写也没问题,为什么总是提示找不到?
bean找不到除了你的名字拼写错误,就是spring找不到你的配置。我之前运行也有错误,是因为老师的代码在这一节讲了两个注解的一些变化,有些地方没有改回来。有三个解决办法:
解决1:我的异常是org.springframework.beans.factory.UnsatisfiedDependencyException,根据异常栈输出发现是autowire的问题,在spring-injection.xml文件中bean配置加autowire="constructor"可以解决,正常输出。autowire详解:https://www.cnblogs.com/ViviChan/p/4981539.html <--这个相当于告诉spring容器通过构造器自动去找对应类。
解决2:把InjectionServiceImpl.java的构造器中injectionDAO1修改去掉1。<--相当于用autowire = default,但是你要保证要找的dao名字是相同的。
解决3:1设值注入 <property>+ref:通过设值注入,<property name="injectionDAO" ref="injectionDAO">,不过injectionServiceImpl里需要加一个无参构造。<--这个方法就相当于setter注入。需要加一个无参构造方法保证InjectionServiceImpl能被初始化。
以上。另外,如果要问问题。。建议贴上console窗口输出的异常栈,以及你出错的代码,你贴上这个图我以为你运行正常呢。。。