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

本文记录了一个因Mapper XML文件中的命名空间路径符号错误导致的问题,并分享了解决步骤。从检查web.xml配置开始,到确认applicationContext-*.xml及springmvc-config.xml中的组件扫描设置,再到验证Mapper文件的正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

唉。真的是醉了。被这个问题耽误了一天的时间,根据报错的提示,一直在在找错误,一直以为是注解错误,可是最后的错误却是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属性值格式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值