后端代码生成器 Spring boot + Mybatis plus 不做重复crud仔!

108 阅读4分钟

infrastructure-code-generator是什么

 作为一个成熟的程序猿,大家肯定都会经常去做一些不可避免的CRUD操作,是不是非常枯燥,大量的仓储层代码如增删改查的mapper、xml、分页查询、仓储层接口及实现,重复的体力劳动也只能让你的crud变得更加熟练,但并不能锻炼你的业务能力,尽管你无论是现在做系统架构,基础架构或者是某大厂某x部门,很难脱离这些基本的crud操作,除非你真的一点业务都不参与,可能只是做一做公司的基础架构组件建设,以及技术架构。因此如何解放双手,让我们更加沉浸到业务逻辑当中,沉浸到业务逻辑设计,大白话讲不要沉迷于搬砖,而是专注于如何设计结构,让结构更加牢固,此工具应运而生(其实是本人真的忍不了了===)

infrastructure-code-generator是我在业余时间开发的一个基于jpt技术的仓储层代码生成器,如果你使用过mapstruct或者lombok,是的,原理与他们无异,但此工具使用起来将会让你事半功倍,更加简单和效率,且毫无配置

需要注意的是,此工具并不会帮你生成controller展现层,因为接口的展现层常常是复杂和多变的,每个团队有不同的接口规范和接口风格,并且展现层可能会出现入参vo转换的情况,很多属性是需要业务场景去做考虑的,因此在设计之初,此工具的定位就是帮你生成仓储层即数据库交互层的逻辑实现。

特点

  • 目前仅支持JPT仓储层代码生成
  • 仅支持mysql数据库且rpm框架为mybatis-plus
  • 可拔插,注解使用,可拷贝代码到项目工程下使用,可直接使用生成代码
  • 易用,注解简洁明了,且属性少
  • 编译时调用,对性能几乎无影响

使用演示

1、maven坐标

<dependency>
    <groupId>com.cyjer</groupId>
    <artifactId>infrastructure-code-generator</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>

转存失败,建议直接上传图片文件

2、根据数据库po对象生成仓储层应用接口、接口实现、mapper、mapper xml

转存失败,建议直接上传图片文件​编辑

从上图可以看到,你不需要做额外配置,只需要按照你正常的开发习惯,在仓储层实体po类上打上@GeneratorInfrastructureApplication注解,在你的idea中重新构建项目,即可在项目的target目录下生成出漂亮的符合一定规范的仓储层代码

  • 默认java源码生成地址:target/generated-sources/generator
  • 默认mapper xml生成地址:target/class/mapper

生成源码的位置包名可通过@GeneratorInfrastructureApplication注解的generatorJavaPackageLocation和generatorXmlPackageLocation属性进行更改, 生成的类注释的作者可通过author属性更改

需要注意:指定@SpringBootApplication(scanBasePackages = {"com.xxx",generator}) 和@MapperScan(basePackages = {"com.**.mapper","generator.mapper"})

注解spring bean包扫描位置,以便能够扫描到生成源码bean,如果你没有指定上述的生成位置,那么请参考如下配置

@SpringBootApplication(scanBasePackages = {"com.xxx","generator"})
@MapperScan(basePackages = {"com.xxx.**.mapper","generator.mapper"})

转存失败,建议直接上传图片文件

3、根据类字段生成相应的更新查询删除方法

根据字段进行查询 @GeneratorQueryByThisField注解

img_2.png

转存失败,建议直接上传图片文件编辑

注解有两个属性:resultType返回类型、batch是否依据此字段批量查询, 当batch开启时,resultType返回类型指定将失效,固定返回类型为List

使用方式: 

img_10.png

转存失败,建议直接上传图片文件编辑

根据字段进行更新 @GeneratorUpdateByThisField注解

img_4.png

转存失败,建议直接上传图片文件编辑

根据字段进行删除 @GeneratorRemoveByThisField注解

img_5.png

转存失败,建议直接上传图片文件编辑

可以根据batch属性来控制是否根据该字段批量删除

源码地址(直接下载并mvn install或者deploy到私库即可使用)

gitee:gitee.com/cyys420/inf…

github:github.com/cy420426/in…