JAVA任意架构源码生成器CodeMaster v1.0 Beta
??? 下载地址参见附件,另附struts运行最小系统。
?
??? CodeMaster 是一款代码智能生成的小工具,使用纯java开发,小巧精简但在很多情况下非常的实用,理论上能够生成任意架构的java源码、配置文件、建表语句等等。
?
??? 以下直接介绍该小工具的用途和试用方法:
?
??? 在开发java代码的时候,特别是开发J2EE中的web项目时,程序员经常会碰到这样一些问题:代码敲写、复制粘贴十分的繁琐,而往往很多代码功能又有所重复或类似只是命名不同而已。比如持久层的开发,在使用hibernate时针对一张表我们其实是要做很多工作的:需要配置表-类的映射文件,需要创建编写持久层类还需要编写对持久层类操作的方法等等。但是这些繁琐步骤却在每次要新建一张表的时候又要重复进行一次,更何况持久层只是项目中的一个层面,在业务层和控制层往往也有很多类似的情况发生。
?
??? CodeMaster 就是为简化这种情况而设计的一种工具。其原理就是将这些重复的操作抽象出来并存入文件,因此这种繁琐的操作只用进行一次,之后便可通过替换的方法进行各类代码的生成,该文件其实也就是模板文件。下面介绍工具的使用:
?
??? 首先先在工具的同级目录下创建一Excel文件(扩展名为xls),并命名为tables.xls,Excel中的格式请参考示例。在同级目录下创建template文件夹,在该文件夹下创建模板文件,文件名和格式参考示例(模板扩展名必需为ftl)。对模板做如下注解:
?
所暴露的变量
?
全局变量
${package} 包路径:模板文件名,以'_'分隔${classname} 类名:Excel中获取${chname} 类中文名:Excel中获取${date} 当前时间?对象属性
fieldList 遍历方法:<#list fieldList as fields>...</#list>
?
所带属性
${fields.DISPLAYNAME} 中文说明${fields.FIELDNAME} 字段名${fields.DATATYPE} 数据类型${fields.ISPK} 是否主键${fields.ISBIZPK} 是否业务主键${fields.ISNULL} 不能为空${fields.DEFAULTVAL} 缺省值${fields.BIZPKPAG} 外键(表/id)包/类名(用于建表语句或者hibernate)${fields.BIZPKTYPE} 对应关系(用于hibernate)${fields.REMARK} 备注?
----附录----
freemarker 常用函数说明
${date?string('yyyy-MM-dd')} 时间格式化${classname?cap_first} 首字母转大写${classname?lower_case} 转小写${classname?upper_case} 转大写${classname?trim} 去除前后空格${fieldList?size} 获取list中元素的数目<#list fieldList as fields><#if fields_has_next>...</#if></#list> 判断是否是列表最后一条记录?
??? 大家从这个模板和注解基本可以看出模板实际上就是freemarker框架(freemarker确实比较强大而且实用,不仅用作一般web页面的模板,任何文件的生成都可以此来作为模板)。示例模板中所给出的是一个struts架构的web例子,模板文件夹中包含了:建表语句模板、持久层类模板、业务层类模板、及控制层的Action类和ActionForm类模板和对应struts配置文件xml模板。有兴趣的朋友可以大致看一下模板的编写及格式。
?
??? 下面运行主程序CodeMaster.exe(程序是基于纯java编写,请确保装有6.0以上的jdk或jre,如无法运行请尝试先装压缩包中的jxpiinstall.exe):
?

???
????? 选择路径之后(默认为当前目录)点击'生成'在所选择的output文件夹中讲生成对应的源程序文件。
?
??? 有兴趣的朋友可以试着编写一些其他架构的模板,如:ssh,s2sh等。
??? 该软件版权归COMMA开发团队所有,程序本身免费,使用者不得以任何形使用于任何商业用途。转载本文请申明出处。