Java代码生成工具

时间:2024-05-18 16:34:08

这是自己写的一个Java代码生成工具。主要是用来满足自己在日常工作中的需要。下面先放上GitHub的地址。

https://github.com/March0605/code-robot

平时工作中开发的项目都是SpringBoot项目,主要写后端接口,使用的还是经典的MVC三层结构。需要写一个Controller,一个Service,和对应的ServiceImpl,实体类,还有DAO的Mapper。

因为在我所在的公司,DAO和实体类都是用Mybatis-generator插件来生成,但是还有一个Controller,一个Service,和对应的ServiceImpl三个文件需要自己写,而且基本上都是大同小异,增删改查,分页查询这些接口,所以就自己写了一个代码生成工具,来自动生成这几个文件。

除了这三个文件,还会生成实体类,因为Mybatis-generator生成的实体类没有Swagger注解,每次一个一个手动添加Swagger的注解真的好麻烦。

 

下面就简单的介绍一下使用方法。

Java代码生成工具

可以看到整个项目的结构很简单,当初也是为了能少就少的文件,方便移到其他项目中使用。

这里要说明的是,这边是建了一个SpringBoot项目,方便使用Mybatis和自动注入的功能,但是没有导入web-start的依赖,所以项目主入口CodeRobotApplication没什么用,如果要运行去test目录就可以了。

Robot是核心代码,所有操作都在里面,TableMapper是数据库操作。为什么需要连接数据库,因为需要获取表的信息和各个字段的信息,主要用于生成实体类。

resource下的templates下放的是准备生成的Java类的模板,可以看到一共准备四个Java类,就不重复了。这里也是一个关键,因为每个人的代码格式都不同,所以这里面的只是我自己个人需要的模板,也是给大家一个参考,只要改成自己想要的格式就好了。

appapplication-dev.yml主要就是配置了连接数据库。

generator.properties是一个配置文件,里面写的就是模板中需要用的的一部分变量。

generatorConfig.xml就是mybatis-generator插件需要的配置文件,用于生成对应的Mapper文件。

 

下面运行一下看一看。

Java代码生成工具

到CodeRobotApplicationTests下,输入一个表名,直接运行main方法就可以了。注意:大家自己在本项目中使用的话,请先去appapplication-dev.yml配置文件里修改自己的数据库。

Java代码生成工具

 

运行后,可以在Util同级目录下的out目录下看到生成的文件。

Java代码生成工具

这里就不点开看里面了,模板是怎么写的,那它生成就是怎么样的。可以看到我们这里是没有DAO层的,DAO层就是靠mybatis-generator来生成,mybatis-generator如何使用就不说了。

Java代码生成工具

上面基本就是生成所有你需要的文件了。

 

其实完全可以不使用mybatis-generator,对应的Mapper和Xml也自己写模板就可以了,我这里使用mybatis-generator是因为我所在的部门的习惯就是用mybatis-generator来生成DAO层的文件。

如果你也使用mybatis-generator,先使用mybatis-generator生成,再用main方法,这样就可以把mybatis-generator生成的实体类给覆盖了,因为我不需要mybatis-generator生成的实体类,但是却需要mybatis-generator生成的实体类的Example文件。

 

文件生成后,可以直接copy到你自己的项目中,但是我个人不太建议这么做,因为这样的话,需要改包名,有点麻烦。

我建议是在这个项目中写自己的模板做做测试,当模板写好后,把templates模板和generator.properties配置文件copy到你自己项目的resource目录下。然后把Robot和TableMapper移到你自己项目随便什么位置。然后要在Robot里修改生成文件的路径就可以了。

Robot里的代码真的很好理解,也很短,看懂它修改生成文件的路径,是不会有什么问题的。

 

如果移到你自己的项目中,别忘了在你自己的项目POM文件里加入对应的依赖。