开发的一个自动化代码生成的Eclipse插件

阅读更多

偶之前参与做的一个自动化代码生成工具,是基于Eclipse的插件,可以生成从展示层到数据层的所有相关代码,生成的代码可以不需要修改直接运行。

整个原理参考了MDA的思想,可实现从PIM到PSM的转换。目标代码是JSF+Spring+Hiberate的,包括所有的页面 代码和配置文件等,选择模板引擎的时候也比较过velocity,最终由于它不支持代码反复生成给否决了。最后采用了JET+JMerge的方式,Jmerge可以通过代码中特定注释的方式来识别是否需要覆盖目标代码,生成出来的代码可以由开发人员反复发修改反复生成,而不会丢失内容。 有点逆向工程的味道,但也不完全是。


建模的时候元数据模型采用Eclipse EMF进行建模,抽象了一套pim. SWT+JFace做工具的界面,基于Eclipse平台做了一个Eclipse的代码自动生成插件,可以直接产生完整的Eclipse工程。

可扩展性方面,插件还对外提供了扩展的Extention point,可以供第三方基于我们的插件开发新的插件,以适合不同技术的项目(如struts+ibatis)等。

呵呵,其实整个工具的开发工作量不大,很简单,总代码行也就一万六千行左右,主要是设计EMF元数据模型的时候考虑了很久,但带来的效率提升还是很不错的,开发中项目50%以上的代码都可以自动生成。

下面是贴图

 

新建自定义的工程

 开发的一个自动化代码生成的Eclipse插件_第1张图片

 

选择数据来源

开发的一个自动化代码生成的Eclipse插件_第2张图片 

 

开发的一个自动化代码生成的Eclipse插件_第3张图片 

 

测试数据连接

开发的一个自动化代码生成的Eclipse插件_第4张图片 

 

选择数据模型及数据字典,可以选择多个

开发的一个自动化代码生成的Eclipse插件_第5张图片 

可以选择修改模型字段的属性

 

开发的一个自动化代码生成的Eclipse插件_第6张图片 

设置视图模型以及显示相关属性,支持定义正则表达式校验 js校验 定义页面元素为Text Select RadioBox等类型,若为Select RadioBox,可以选择数据字典

 

开发的一个自动化代码生成的Eclipse插件_第7张图片 

数据字典选择

 

开发的一个自动化代码生成的Eclipse插件_第8张图片 

 

这里设置页面查询区域的数据,也就是页面上面的查询输入区域

 开发的一个自动化代码生成的Eclipse插件_第9张图片

设置模型文件的编码等信息

开发的一个自动化代码生成的Eclipse插件_第10张图片 

若有需要,可以设置一些选项信息,包括代码模板目录,代码合并规则,以及目标代码类别

 

开发的一个自动化代码生成的Eclipse插件_第11张图片

完成后产生的Java工程,包括所有的配置文件 Java代码 JSP页面 数据模型文件等等

开发的一个自动化代码生成的Eclipse插件_第12张图片

 

数据模型编辑器,可以反复修改数据模型,修改后可以更新全部代码,也可以选择更新部分代码

由于使用了Jmerge,之前产生的代码就算开发人员修改了很多,再次产生也不会覆盖,也不需要开发人员拿几次生成代码手工合并,呵呵

开发的一个自动化代码生成的Eclipse插件_第13张图片

 

 

 

 

 最终产生的代码就是一个完整的功能块,可以直接发布到tomcat上运行,界面和楼主的类似,包括列表 增 删 改 查询等几个页面,页面字段的校验,字段的显示样式(selectbox checkbox等等)也都具备了,基本上很少修改,对UI风格不满意可以引入不同风格的代码模板就Ok了

你可能感兴趣的:(Eclipse,正则表达式,iBATIS,Spring,JSF)