springBoot与mybatis-plus整合,配置mapper.xml发生异常 :Property configuration and configLocation can not specif

1,035 阅读1分钟

一、异常场景

springBoot + Mybatis-plus整合完毕。

使用mp提供的方法无法满足业务需求,需要手写SQL。

于是配置Mapper.xml文件并测试手写SQL时发生异常。

二、核心错误信息

错误信息一大推,由最初没抓住异常问题核心,被什么bean创建失败异常吸引,白白浪费好长时间。

Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is java.lang.IllegalStateException: Property 'configuration' and 'configLocation' can not specified with together
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)
	at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:622)
	... 127 more
Caused by: java.lang.IllegalStateException: Property 'configuration' and 'configLocation' can not specified with together
	at org.springframework.util.Assert.state(Assert.java:73)
	at com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean.afterPropertiesSet(MybatisSqlSessionFactoryBean.java:419)
	at com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean.getObject(MybatisSqlSessionFactoryBean.java:636)
	at com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration.sqlSessionFactory(MybatisPlusAutoConfiguration.java:172)
	at com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration$$EnhancerBySpringCGLIB$$1bd5cbdb.CGLIB$sqlSessionFactory$2(<generated>)
	at com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration$$EnhancerBySpringCGLIB$$1bd5cbdb$$FastClassBySpringCGLIB$$295449c3.invoke(<generated>)
	at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244)
	at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:363)
	at com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration$$EnhancerBySpringCGLIB$$1bd5cbdb.sqlSessionFactory(<generated>)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
	... 128 more

三、错误原因及解决方法

异常信息: *Property 'configuration' and 'configLocation' can not specified with together* 
 
说明:'configuration''configLocation'不能一起配置,发生冲突

在配置Mapper.xml文件位置时,由于一时大意,没看清楚,由mapper-locations配置成了config-location。

在这里插入图片描述
在这里插入图片描述
更改配置后,测试正常,问题解决。

在这里插入图片描述