Maven项目中,关于Spring Boot 整合MyBatis时,Service层无法找到mapper接口的问题解决

来源:互联网 发布:unity3d project 编辑:程序博客网 时间:2024/06/03 14:51

1 需要加载MyBatis的依赖:

<dependency>            <groupId>org.mybatis.spring.boot</groupId>            <artifactId>mybatis-spring-boot-starter</artifactId>            <version>1.3.1</version>        </dependency>
2 加载数据库链接以及数据库链接池的依赖:
<dependency>            <groupId>mysql</groupId>            <artifactId>mysql-connector-java</artifactId>        </dependency>
<dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-jdbc</artifactId>        </dependency>
<dependency>
            <groupId>com.alibaba</groupId>            <artifactId>druid</artifactId>            <version>1.1.3</version>        </dependency>
备注:我使用的是Idea编译器,加载Spring的依赖时,先加载了parent依赖,所以大部分的依赖没有具体的版本,Spring Boot会自动的加载适合的版本;
检查依赖是否加载成功的办法:
1 重要的依赖加载完毕后,可以先启动工程,是否能够启动成功,检查一下依赖加载的是否正确;
此时如果没有在application.yml文件中配置数据库的相关配置,会报错;
一般数据库相关数据配置成功,就可以成功启动;
创建项目结构:
dao:
mapper:(映射文件)
dto:
Service:
impl:
controller:

基本上按照的是MVC的架构思想创建的项目;

MyBatis配置+注解:
1 Idea的检查功能很强,在编译时期,如果在Mapper层没有添加@Repository注解,在Service层就无法注入Bean的错误,所以最好加上;
2 在application.yml文件中添加mybatis 的配置:
mybatis:  mapperlocations: classpath:com/xxx/xxx/dao/mapper/*.xml  -----扫描映射文件  config-location: classpath:mybatis-config.xml  ------扫描配置文件
注意:路径要以/ 分割
3 Mybatis 的核心配置文件 mybatis-config.xml的配置文件,虽然Spring Boot已经将数据库的配置设置好了,但是即使是一个空的配置文件也要放在resouse目录根目录下;
(因为里面设置 Spring Boot 代替不了的设置:比如 驼峰映射、是否开启二级缓存等重要的设置);
本以为配置完上面已经很完美了,谁知还是太年轻了:
继续配置:
注意:
1 如果将映射文件不放在resouse目录下,则必须在pom中加载:
<resources>            <resource>                <directory>src/main/java</directory>                <includes>                    <include>**/*.properties</include>                    <include>**/*.xml</include>                </includes>            </resource>            <resource>                <directory>src/main/resources</directory>                <includes>                    <include>**/*.*</include>                </includes>            </resource>        </resources>
加载到<build>标签下;
如果此时启动项目还是找不到mapper,那么就在启动类上加上注解:@MapperScan(basePack={""})注解,现在才完美;
启动--成功;
希望各路大神,纠正 指点 共同进步









阅读全文
0 1