一、使用默认的配置文件名
- 使用默认的配置文件application.yml时,mapper文件放在resource下,指定classpath路径配置
mybatis:
config-location: classpath:mapper/*Mapper.xml
- 报错: 找不到指定的mapper文件
Caused by: java.io.FileNotFoundException: class path resource [mapper/*Mapper.xml] cannot be opened because it does not exist
at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:180)
at org.mybatis.spring.SqlSessionFactoryBean.buildSqlSessionFactory(SqlSessionFactoryBean.java:406)
at org.mybatis.spring.SqlSessionFactoryBean.afterPropertiesSet(SqlSessionFactoryBean.java:380)
at org.mybatis.spring.SqlSessionFactoryBean.getObject(SqlSessionFactoryBean.java:547)
at org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration.sqlSessionFactory(MybatisAutoConfiguration.java:153)
at org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration$$EnhancerBySpringCGLIB$$f59d01c7.CGLIB$sqlSessionFactory$1(<generated>)
at org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration$$EnhancerBySpringCGLIB$$f59d01c7$$FastClassBySpringCGLIB$$8d295b3d.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:365)
at org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration$$EnhancerBySpringCGLIB$$f59d01c7.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)
... 66 more
解决:
mybatis-plus:
config-location: classpath:mapper/*Mapper.xml
原因:
注意自己使用的时mybatis还是mybatis-plus来修改配置文件.
二、自定义的配置文件
- 使用默认的配置文件
@SpringBootApplication
@MapperScan(basePackages = "com.iflytek.ap.uoamp.edu.api.dao")
@PropertySource(value = {"classpath:customize.properties"},
ignoreResourceNotFound = true)
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
- 配置mapper路径时,路径代表的是与配置文件的相对路径
mybatis.config-location: mapper/*Mapper.xml
- 目录结构
customize.properties
logback.xml
- mapper
DemoMapper.xml