Mybatis提示Cannot find class [org.mybatis.spring.mapper.MapperScannerConfigurer]

本文解决MyBatis与Spring整合时出现的CannotLoadBeanClassException异常,该问题源于无法找到org.mybatis.spring.mapper.MapperScannerConfigurer类。解决方案涉及检查mybatis-spring版本及类路径。

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

Mybatis提示Cannot find class [org.mybatis.spring.mapper.MapperScannerConfigurer]10

如题:mybatis提示如下异常,是什么原因? 
by: org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.mybatis.spring.mapper.MapperScannerConfigurer] for bean with name 'org.mybatis.spring.mapper.MapperScannerConfigurer#0' defined in class path resource [applicationContext-mybatis.xml]; nested exception is java.lang.ClassNotFoundException: org.mybatis.spring.mapper.MapperScannerConfigurer 


mybatis相关配置: 
<!-- scan for mappers and let them be autowired --> 
   <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> 
       <property name="basePackage" value="com.hft.dal.mapper" /> 
       <property name="markerInterface" value="com.hft.dal.SqlMapper" /> 
   </bean> 

问题补充:忘记说,这个是mybatis与spring整合
2013年7月05日 10:51

4个答案按时间排序按投票排序

0 0

采纳的答案

解压mybatis-spring1.0.0-RC2.jar,看其中是否有org.mybatis.spring.mapper.MapperScannerConfigurer这个类,若没有换个版本,http://www.jarvana.com/jarvana/archive-details/org/mybatis/mybatis-spring/1.0.2/mybatis-spring-1.0.2.jar

2013年7月05日 11:04
0 0

先看你加载的classpath,然后再看里面的jar包有没相应的class,可能是你的jar包版本不一致

2013年7月05日 16:46
0 0

刚搭建的框架吧? 
如果读不到任何一个配置文件,就会抛出这个异常。

2013年7月05日 15:36
0 0

把引入的包贴出来看看,顺便把错误日志贴上来,内容多点,不然这样只会认为是缺少包。

2013年7月05日 13:45
    ### 若依项目中 MyBatis 配置导致的 `Cannot find class: SysConfig` 错误分析 该错误的根本原因是 MyBatis 在解析 XML 文件中的类型别名时无法找到对应的 Java 类。具体来说,当 MyBatis 尝试加载 Mapper 文件并解析 `<resultMap>` 或其他标签中的 `type` 属性时,如果指定的类未被正确注册到 MyBatis 的类型别名机制中,则会抛出此异常。 #### 原因分析 1. **缺少类型别名配置** 如果在 MyBatis 中使用的实体类(如 `SysConfig`)未通过 `typeAliasesPackage` 注册到全局配置中,MyBatis 无法自动将其映射为类型别名[^4]。 2. **类路径问题** 实体类可能位于一个未被扫描的包中,或者由于构建工具(如 Maven/Gradle)配置不当,导致编译后的 `.class` 文件未能正确打包至目标目录[^3]。 3. **拼写错误或命名不一致** 如果 XML 文件中声明的类型名称与实际 Java 类的全限定名不符,也会引发此类问题[^1]。 --- ### 解决方案 以下是针对上述问题的具体解决方法: #### 方法一:检查 `application.yml` 中的 `typeAliasesPackage` 确保在项目的 `ruoyi-admin` 模块下的 `application.yml` 文件中已正确配置了 `typeAliasesPackage` 参数,并包含了所有自定义实体类所在的包路径。例如: ```yaml mybatis-plus: type-aliases-package: com.ruoyi.system.domain, com.ruoyi.common.core.domain ``` 此处需确认 `com.ruoyi.system.domain.SysConfig` 是否已被包含在内。 #### 方法二:手动注册类型别名 如果不想依赖于自动扫描,可以在 MyBatis 的核心配置文件中显式注册类型别名。例如,在 Spring Boot 环境下可以通过如下方式实现: ```java @Bean public ConfigurationCustomizer configurationCustomizer() { return new ConfigurationCustomizer() { @Override public void customize(Configuration configuration) { configuration.getTypeAliasRegistry().registerAlias("sysConfig", SysConfig.class); } }; } ``` #### 方法三:验证类路径和依赖关系 确保 `SysConfig` 所属模块已在当前项目中正确引入。如果是多模块项目结构,建议检查以下几点: 1. 确认 `pom.xml` 文件中是否存在必要的依赖项; 2. 使用 IDE 工具(如 IntelliJ IDEA)验证 `SysConfig` 类是否可正常解析; 3. 清理并重新构建整个工程以排除潜在的缓存问题。 #### 方法四:排查 XML 文件语法 仔细核对涉及 `SysConfig` 的 Mapper 文件内容,特别是 `<resultMap>` 和 `<select>` 节点部分。例如: ```xml <resultMap id="BaseResultMap" type="sysConfig"> <id column="config_id" property="configId"/> <result column="config_name" property="configName"/> </resultMap> <select id="selectSysConfigById" resultMap="BaseResultMap"> SELECT * FROM sys_config WHERE config_id = #{configId} </select> ``` 注意这里的 `type="sysConfig"` 应对应正确的类型别名或完整的类名[^2]。 --- ### 总结 通过对以上四种方法逐一排查,可以有效定位并修复 `Cannot find class: SysConfig` 这一类由 MyBatis 配置引起的常见问题。重点在于合理设置 `typeAliasesPackage` 参数以及确保相关类能够被成功加载。 ---
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值