1. 日常开发中,经常写一些简单重复但又不得不写的代码,真的很让人崩溃,为了解决这个痛点,我们可以用代码生成替代有迹可循的编码工作。
2. 接下来我们就具体讨论,如何用freemarker去生成代码。
2.1 freemarker是一个模板引擎,可以用java的变量去替换模板文本中的占位符。
2.2 现在有个需求:根据表结构生成对应的增删改查代码,其中代码层次为controller,service,serviceImpl,aopComponent(支持切面分页查询),converter(mapperStruct),dto,vo,以及根据不同的mybatis风格生成对应的entity,mapper等,我们可以用freemarker来实现。
2.3 首先手动写这么一套代码,然后再将这套代码作为模板,把变量部分用占位符替换即可
2.4 然后读数据库表结构,把表字段等信息放到一个model对象里,扔给freemarker进行渲染。
2.5 对于不同mybatis风格,对应的service里代码有区别,所有会根据不同风格分两个AbstractFactory类,每个工厂生产自己风格的一套类。
3. 以上思路,实现就不具体赘述了,大家可以去看我的源码,比较简单,现在这个功能开箱即用!
有改进的建议可以去github上fork然后pull request