Craft6代码生成器原理、类结构、配置文件介绍和使用简述

2016-12-28 17:14:04

请关注唯心的个人微信公众号:craft6-cn(中划线,也可以搜索:领域驱动业务建模)

一、代码生成原理图

代码生成器实现原理.jpg

  • 代码生成器是基于数据表结构、代码模板和模板解析引擎生成标准代码文件。用于减少重复工作量

  • 代码模板一般使用FreeMarker或Velocity,因为这两者都是模板解析语言,不需要预编译。

    我采用FreeMarker技术。

  • 数据表设计有两种形式:1)单表:最为常见。2)主从表:因为从表可能没有独立的菜单,它的CRUD依赖主表。

  • 配置文件解析层:

    • 我把代码生成配置放置到codegen.xml和codegen-self.xml两种文件中。

    • 前者是公共的配置文件,由架构师统一配置好就可以了,各个开发人员不需要配置,这样减少个性化配置。

    • 后者是配置要生成的表,以及生成到相应的工作空间路径。

    • 设计一个专门的ConfigModelHelper用于解析xml文件,构造为Java对象,方便开发处理。

  • 数据表访问解析层:

    • 就是根据数据库配置,读取指定要生成代码的表的结构,包括表名、字段、类型和备注等等。

    • 如果是主从表,则同时要读取外键信息,构造主从关系。

    • 通过数据库工具类(基于接口实现,不同数据库类型不同的实现)

  • 代码生成

    • 基于前面构造好的配置文件对象(ConfigModel)和数据表结构对象(TableModel)

    • 遍历所有待处理的代码模板,通过FreeMarker模板引擎进行代码文件生成

    • 根据配置文件的参数进行覆盖或跳过等。

    • 控制台打印日志,方便查看生成结果。

  • 代码删除

    • 原理同上,只是做的操作是文件删除。


二、代码生成器类结构

代码生成器类结构.jpg

   这个类结构虽然是基于我自己的代码生成器所编写,但是也具备一定的普遍情况。

   整体业务分为三个环节:

  • 配置文件解析:主要是xml处理。

    • 代码模板路径、处理参数等。

    • 工作空间、开发人员的个性化信息

    • 待生成的数据表、类名、包名定义等。

  • 数据库处理

    • 基于接口实现,这样就可以支持不同类型的数据库产品了。

    • 统一返回TableModel,该对象包含数据表的结构封装

  • 代码生成处理

    • FreeMarker渲染。

    • 文件处理。


三、配置文件结构

  1. codegen.xml

  2.      定义这个配置文件主要有几点要考虑的:

      • 分类:分为dbFiles、daoFiles...等等,这样是为了控制不同的代码放在不同的目录下,并且可以指定生成那些文件。

      • 参数定义:在variables中定义的参数,可以在配置文件中使用,也可以在代码模板中使用。由于是遍历方式解析的,
        所以扩展时,增加更多的行即可。

      • codegen.xml文件是公共的,这样就避免了每个开发人员都自己修改一份。

    QQ截图20161229143447.png

  3. codegen-self.xml

  说明:

  • variables:开发人员个性化信息

  • bizDir、appDirs分别表示相应的代码放置在那个目录下面

  • table:表示数据表的配置。

    • 通过doType表示本次生成只生成那些部分的代码。

QQ截图20161229143506.png

四、代码生成模板(以mapping.ftl为例)

  • 说明: 前面assign都是引入的参数,可以直接在下面模板中使用。

  • 通过${xxx}调用这些参数

    • 比如colList表示该表全部列。

    • sys表示子系统名称,在前面codegen-self.xml的table标签中使用。

  • 通过诸如#list、#if等freemarker标签进行开发。

  • 所以我们要扩展模板,只需要根据需要在模板中增加代码,并合理使用已有的参数(或自己扩展参数)


五、通过Ant使用

    代码生成器设计了两个类作为入口(有execute方法)

QQ截图20161228170103.png

   在eclipse中,打开Ant view,引入该build文件,点击【生成代码】即可生成文件。


六、通用性说明和销售

    代码生成器底层的实现都是和项目无关的,因为都是通过读取数据库结构,和项目相关的只是代码生成模板。

     而每个项目框架结构、基础代码都有一些差别,所以调整模板是必须的。


     模板调整难度不大,只要稍为熟悉FreeMarker模板技术即可。


     所以即使没有购买Craft6框架,一样可以独立购买本代码生成器的源码,然后根据自己项目特点进行调整,

从而成为您项目中独一无二的代码生成器。


     本套代码生成器源码(全部)、使用说明文档(包括使用和模板扩展说明)价格:

   

     ¥6000


     有意者加我QQ或微信购买。QQ(1 6 3 9 9 4 7 6),微信号:follow__your__heart (唯心。单词之间各有两个下划线,共4个下划线)。


可通过扫描左侧二维码阅读本文。本站文章均为颜超敏原创,欢迎转载,请注明出处即可,转载可通过下面的社会化工具快速完成。

分享到:


为您推荐这些文章,如果感兴趣,请继续阅读吧:

Craft6代码生成器原理、类结构、配置文件介绍和使用简述

代码生成器

Craft6代码生成器原理、类结构、配置文件介绍和使用简述

颜超敏,唯心六艺,Craft6.cn,电子商务博客,电子商务研发,电商研发,电子商务研究,电商研究,电子商务专家,电商专家,电子商务知识,电商知识,电子商务教程,电商教程,电子商务模式,电子商务平台,电子商务商业模式,电子商务数据库设计,电商数据库设计,电子商务系统分析,Java架构设计,Java软件架构,B2C,O2O,o2o模式,o2o电子商务,o2o电子商务平台,中国电子商务,电子商务平台建设方案
粤ICP备14060523号 Copyright @2014 -唯心六艺软件