You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot整合MyBatis XML启动报Unsatisfied dependency错误如何解决

问题根因

报错已经明确给出冲突点:

java.lang.IllegalStateException: Property 'configuration' and 'configLocation' can not specified with together

该错误表示你同时配置了MyBatis独立配置文件路径(mybatis.config-location)和Spring Boot配置文件中的MyBatis参数(mybatis.configuration.*),二者互斥无法同时生效。

调整步骤
  • 第一步:解决配置冲突
    推荐使用Spring Boot自动配置方案简化配置:
    1. 直接删除resources下的mybatisConfig.xml文件,不需要独立的MyBatis配置文件
    2. 删除application.properties中的mybatis.config-location=classpath:mapper/mybatisConfig.xml这一行配置
  • 第二步:修正Mapper XML的命名空间绑定
    打开EmployeeMapper.xml,将mapper标签的namespace属性修改为你Mapper接口的全限定名:
    <mapper namespace="com.tmb.mybatiscrudproj.mapper.EmployeeMapper">
    
    原配置的namespace="Employee"无法和对应的Mapper接口绑定,会导致接口方法无法匹配XML中的SQL语句。
  • 第三步:检查Mapper XML存放路径
    你的application.properties中配置了mybatis.mapper-locations=classpath:mapper/*Mapper.xml,请确保EmployeeMapper.xml放在resources目录下的mapper文件夹中。如果XML直接放在resources根目录,就将配置修改为mybatis.mapper-locations=classpath:*Mapper.xml。
  • 第四步:清理冗余注解
    启动类上的@MappedTypes({Employee.class})属于冗余配置,你已经配置了mybatis.type-aliases-package=com.tmb.mybatiscrudproj.domains自动扫描实体类别名,可直接删除该注解。
验证

修改完成后重新启动项目,启动成功后即可正常访问接口:

  • 查询所有员工:GET请求http://localhost:8081/employee/getAllEmp
  • 按ID查询员工:GET请求http://localhost:8081/employee/getEmp/{员工ID}

内容的提问来源于stack exchange,提问作者Chaudhry Talha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 09:12:04