1、问题:启动Tomcat时报错!
主要错误代码如下
No qualifying bean of type [com.*.*.*.*.*.dao.InfoDao] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@javax.annotation.Resource(shareable=true, mappedName=, description=, name=, type=class java.lang.Object, authenticationType=CONTAINER)}
- 1
- 1
在这段代码之前还有错误代码:
WARN o.s.w.c.s.XmlWebApplicationContext - Exception encountered during context initialization - cancelling refresh attempt
- 1
- 1
2、出现错误的环境:spring MVC + MyBatis框架下,涉及有control层、service层、dao层。
3、问题分析:一开始以为是由于control层使用@Resource出现的异常,但是经过逐层排查,错误的根源是在service层中的注解处引发的,从网上查找相关资料说是:找不到dao类
注:我的注解路径都没有问题,但是还是出现错误。
4、我的错误原因:在工程目录下创建了多级目录,而对applicationContext.xml文件的
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
- 1
- 1
标签中没有进行“添加“多级的配置(原来的该配置文件中只有两级目录,需要再添加一级)
5、问题解决方法:在工程中有个applicationContext.xml文件,打开后,如下图:
注:(1)找到bean标签,一开始的设置只有前两个,而我的解决方法就是在后面加入蓝色框中的内容,即可解决上述问题。
(2)上面第3点的“注”中说过:我的错误不是因为注解路径的原因引起的,而是因为配置文件中设置的自动扫描目录为2级引起的,而我要运行的代码是3级目录,所以需要再加一级。
(3)综合网上大多数引起这种错误的原因,我觉得主要是在配置文件中(我的是applicationContext.xml)去进行修改,特别注意一下
基本出现这种错误都是xml文件映射路径错误,检查路径是否正确
本文非原创,也是遇到问题百度得到,确实发现映射路径错误,我也测试了其他路径,都会报着这个错