-
为什么自己做个代码生成器?
- Mybatis自带的自动生成代码,不能自定义,比如各种命名没法改,比如不能生成controller、service、jsp
- 自己如何写代码生成器?模板引擎velocity
使用说明:https://www.ibm.com/developerworks/cn/java/j-lo-velocity1/
Velocity-1.7.jar : 模板引擎
commons的2个jar包 :是模板引擎依赖了人家的类
Guava-27.1-jre.jar :是对字段名的转换,比如good_name字段,在java类的属性叫goodName,当setGoodName时又变成首字母都大写:GoodName,这个jar可以方便转换
-
代码生成器的原理
- 编写一个模板,比如要生成XXXService.java,service里面所有代码讲模块部分全部用占位符/变量名代替。比如MenuService改成${modelClass}Service
- 使用模板引擎,向模板中传递需要的占位符数据,比如${modelClass},这次要生成Menu,就传Menu,下次要建good,就传Good,就可以生成出来不同的模块,但代码只写了模板里面的这一遍
- 通过模板引擎,将替换好的占位符的模板输出为具体的MenuService.java、MenuController.java甚至是menu.jsp
- 开发过程
- 引入jar包。
- 新建类com.zq.code.CodeBuilder,要有main方法,需要单独运行生成代码文件。不走spring框架;
- 编写模板引擎调用代码
4.com.zq.code.CodeBuilder生成MenuService完整代码
5.写service.vm模板
6.其他的模板类似,我们写一下:serviceImpl.vm controller.vm dao.vm