编写springMVC时报错:
nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.byron4j.mcp.mapper.TaskerMapper] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
解决方法:
去查看你的web.xml,你的spring容器没有到位。不管你是从哪里学习的springMVC,一般对spring容器的配置文件是分开编写的,如分成dao、service、transaction、springmvc等4个xml文件,也有分成2个文件的,等等,但实际上,在web.xml中都是要同时装载,少一个都不行,而分开装载就会报这个错,解决方法是统一命名,如将文件都命名为spring-dao.xml、spring-service.xml等,然后一起装载。下面给出错误的配置和正确的配置:
错误(分开配置):
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:XXX.XML</param-value>
</context-param>
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:XXX.xml</param-value>
</init-param>
</servlet>
正确配置(统一命名配置,去除context-param一块):
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-*.xml</param-value>
</init-param>
</servlet>