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注解
编辑
注解有两个属性:resultType返回类型、batch是否依据此字段批量查询, 当batch开启时,resultType返回类型指定将失效,固定返回类型为List
使用方式:
编辑
根据字段进行更新 @GeneratorUpdateByThisField注解
编辑
根据字段进行删除 @GeneratorRemoveByThisField注解
编辑
可以根据batch属性来控制是否根据该字段批量删除
源码地址(直接下载并mvn install或者deploy到私库即可使用)
gitee:gitee.com/cyys420/inf…
github:github.com/cy420426/in…