Spring Boot干货系列:(十一)数据存储篇-Spring Boot整合Mybatis通用Mapper插件
前言
上次介绍了Spring Boot中Mybatis的简单整合,本篇深入来结合通用Mapper、Mybatis Geneator以及分页PageHelper来打造适合企业开发的模板框架。
正文
项目框架还是跟上一篇一样使用Spring Boot的ace后端模板,不过最近在使用vue,所以前端引用了vue进来改写,代码变得更加简洁。
项目配置:
Spring Boot: 1.5.9.RELEASE Maven: 3.5 Java: 1.8 Thymeleaf: 3.0.7.RELEASE Vue.js: v2.5.11
数据源依赖
这里我们还是使用阿里巴巴的druid来当数据库连接池,发现这个有对应的监控界面,我们可以开启。 druid官方文档:https://github.com/alibaba/druid/wiki/常见问题
对应的application.properties配置:
对应的bean配置:
mybatis相关依赖
上面引入了mybatis相关的一些依赖以及generator的配置,这里generator配置文件指向 src/main/resources/mybatis-generator.xml文件,具体一会贴出。
对应的application.properties配置:
通用Mapper配置
通用Mapper都可以极大的方便开发人员,对单表封装了许多通用方法,省掉自己写增删改查的sql。 通用Mapper插件网址:https://github.com/abel533/Mapper
这里实现一个自己的接口,继承通用的mapper,关键点就是这个接口不能被扫描到,不能跟dao这个存放mapper文件放在一起。
最后在启动类中通过MapperScan注解指定扫描的mapper路径:
MyBatis Generator配置
这里配置一下上面提到的mybatis-generator.xml文件,该配置文件用来自动生成表对应的Model,Mapper以及xml,该文件位于 src/main/resources
下面
Mybatis Geneator 详解: http://blog.****.net/isea533/article/details/42102297
其中,我们通过 <propertiesresource="application.properties"/>
引入了配置文件,这样下面指定数据源的时候不用写死。
其中tk.mybatis.mapper.generator.MapperPlugin很重要,用来指定通用Mapper对应的文件,这样我们生成的mapper都会继承这个通用Mapper
这样就可以通过mybatis-generator插件生成对应的文件啦
如果不是IDEA开发环境也可以直接通过命令:mvn mybatis-generator:generate
自动生成的文件如下图所示
脚本初始化
Controller层
到此为止,基本的配置结束了,我们开始实现业务的逻辑,Controller层代码如下
通用Service
正常情况下具体业务是每个模块的service里面定义许多方法,然后mapper中实现。
但是博主查看插件文档后发现一个通用Mapper在Spring4中的最佳用法。那就是通用的Service。 具体可以查看这里了解:https://gitee.com/free/Mapper2/blob/master/wiki/mapper/4.Spring4.md
定义通用service接口
具体实现通用接口类
到此基本的增删改查通用service就写好了,具体业务的service就直接继承这个接口即可,也可以添加额外的方法,例如:
具体实现service
可以看到,具体LearnServiceImpl这边就实现了2个方法,其他的都使用了通用service的,在开发上剩下了许多功夫。
Mapper相关
在自动生成的mapper文件中实现sevice自定义的方法:
LearnResourceMapper.xml:
IDEA可以安装这个插件,这样就可以直接从Mapper文件跳转到xml了
最终项目效果如下,增删改查分页一个都不少:
上面提到druid有对应的监控界面,启动项目后输入http://localhost:8090/spring/druid 即可登录,界面效果如下
总结
到此,一套适合企业级开发的Spring Boot应用模板就好了,Mybatis+通用Mapper、Mybatis Geneator确实可以省下很多开发成本,提高效率。前端整合了vue.js,具体看源码。
想要查看更多Spring Boot干货教程,可前往:Spring Boot干货系列总纲
源码下载
( ̄︶ ̄)↗[相关示例完整代码]
chapter11==》Spring Boot干货系列:(十一)数据存储篇-Spring Boot整合Mybatis通用Mapper插件
想要ace模板源码的话,在博主公众号回复关键字:ace
一直觉得自己写的不是技术,而是情怀,一篇篇文章是自己这一路走来的痕迹。靠专业技能的成功是最具可复制性的,希望我的这条路能让你少走弯路,希望我能帮你抹去知识的蒙尘,希望我能帮你理清知识的脉络,希望未来技术之巅上有你也有我。
博主最近发起了《嘟爷电子书互惠组》计划,里面包含了《MyBatis从入门到精通__刘增辉》相关书籍在内的至少194本Java相关的电子书,也有博主花钱买的电子书。可谓新手必备之物,详情可前往博客书单末尾查看: Java后端2017书单推荐