No qualifying bean of type [com.dao.UserDao] found for dependency:

版权声明:不忘初心!砥砺前行,与君共勉。 https://blog.csdn.net/m0_37836194/article/details/80384110

唉。真的是醉了。被这个问题耽误了一天的时间,根据报错的提示,一直在在找错误,一直以为是注解错误,可是最后的错误却是mapper.xml 中的<mapper namespace="com.gu.ssm.dao.user.UserMapper">我把它写成了<mapper namespace="com/gu/ssm/dao/user/UserMapper">。。。。。还好是把错误找到了。。。。。真的是为自己的粗心付出了惨痛的代价。

这里把我找到的注解错误的解决办法整理一下,以防万一。

整体来说是,先看web.xml有没有写

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext-*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<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:springmvc-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

即是要在web.xml中加载applicationContext-*.xmlspringmvc-config.xml 。classpath:代表根目录,我把配置文件放在了根目录了。

然后在看applicationContext-*.xml,  <context:component-scan base-package="com.ssm.controller"/> 
    <context:component-scan base-package="com.ssm.service"/>
    <context:component-scan base-package="com.ssm.dao"/>和 <tx:annotation-driven/><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
      <property name="basePackage" value="com.ssm.dao"></property>

     </bean>

接着springmvc-config.xml, <mvc:annotation-driven></mvc:annotation-driven>  
    <!-- 设置使用注解的类所在的jar包 ,DispatcherServlet上下文,只搜索@Controller标记的类-->
    <context:component-scan base-package="com.ssm.controller">
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>

    <context:component-scan base-package="com.ssm.service"/>

还有就是mapper.java和mapper.xml需要看一下是否映射正确,名字,方法名,namespace属性值格式。

猜你喜欢

转载自blog.csdn.net/m0_37836194/article/details/80384110