-
Notifications
You must be signed in to change notification settings - Fork 242
CodeGenerator
lixia edited this page Jul 14, 2014
·
2 revisions
从开发框架的目标来说会尽可能的提取封装基本的CURD基类实现,但是对于各个业务功能开发还是需要一些基本的框架代码作为添加业务逻辑实现的基础, 有一个基本的框架代码生成工具,既可以有效提升开发效率,也能提升编码的风格一致性和潜在的后期重构需求。
为此本框架实现了一个略显粗糙的代码生成工具,基于Freemarker模板定义,以Maven调用特定main实现方法, 实现基本的Entity、DAO、Service、Test、Contoller、JSP等框架页面代码文件生成,具体实现可参考工程project-tools。大致介绍如下:
- 配置文件在:各project工程对应的generator\entity_list.properties,在其中定义各功能点Entity Class列表作为代码生成的起点
- 模板文件位置:project-tools\src\main\resources\lab\apollo\tool\builder\freemarker,可自行根据项目需要调整模板定义格式
- 生成的代码在:各project工程对应的generator\codes目录下,其中standalone是一个Entity一个目录,用于偶尔重复生成拷贝某一个Entity相关代码之用,integrate是整合到一起的目录结构。注意:生成的代码都在当前tools工程中,需自行根据需要拷贝所需相关代码到对应的业务工程目录或Package下,然后在业务工程中基于框架代码添加相关业务逻辑代码
整个代码工具全部配置文件和源代码都在project-tools工程目录下,如果在运行过程出现问题或有兴趣改进优化其实现,可以自行修改代码逻辑或模板定义以适合自己的项目需要, 以下简单介绍一下使用步骤,具体原理可结合相关配置文件和源代码理解。
- 在各project工程对应的generator\entity_list.properties添加Entity类的定义
- 以Maven命令和Eclipse Maven插件方式运行对应工程的pom.xml:mvn compile -Pgenerator
- maven执行完成后可刷新工程展开工程对应的target\generated-codes目录,找到所需框架代码拷贝到对应业务工程代码目录下
- 刷新业务工程如果新代码没有编译错误,则说明生成代码基本可用,可以尝试通过UI界面进行基本的CRUD功能验证
- 然后在框架代码基础之上追加特定的业务代码实现即可