package org.plus.code; import javax.sql.DataSource; import org.kungfu.core.Config; import org.kungfu.generator.GeneratorClient; import com.jfinal.kit.PathKit; import com.jfinal.kit.PropKit; import com.jfinal.plugin.c3p0.C3p0Plugin; public class CodeGenerator { public static DataSource getDataSource() { PropKit.use("config.properties"); C3p0Plugin c3p0Plugin = Config.createC3p0Plugin(PropKit.get("jdbcUrl"), PropKit.get("user"), PropKit.get("password").trim()); c3p0Plugin.start(); return c3p0Plugin.getDataSource(); } public static void main(String[] args) { // base model 所使用的包名 String baseModelPackageName = "org.plus.module"; // base model 文件保存路径 String baseModelOutputDir = PathKit.getWebRootPath() + "/src/main/java/org/plus/module"; //String baseModelOutputDir = PathKit.getWebRootPath() + "/src/main/webapp/target/demo/src/main/java/org/alien/de/module"; // model 所使用的包名 (MappingKit 默认使用的包名) String modelPackageName = "org.plus.module"; //web pages存放路径 String webPageOutputDir = PathKit.getWebRootPath() + "/src/main/webapp/module"; GeneratorClient.generator(getDataSource(), baseModelPackageName, baseModelOutputDir, modelPackageName, webPageOutputDir, null, null); } }
注:生产器源码
https://github.com/ticktack/kungfu/tree/master/src/main/java/org/kungfu/generator
代码生成器变种
基于jfinal源码中的generator进行改造和增强。其中包括:
1.BaseModel 和Model 生成路径做了调整;
2.新增了API/Service/Controller/WebPage等代码生成功能,基于前端Web框架BJUI。(根据需要可以灵活修改,如前端采用react,vue.js,artTemplate,freemarker等)
3.封装了基本的数据CRUD操作。基本可以达到生成即可运行。
需要改进点:
1.前端组件的丰富程度不够,目前只有文本框、文本区、日期时间空间、单选按钮。后续继续完善。
2.抽象现有代码生成,做成可配置化,支持更多前端框架;
3.抽象封装更多后台服务。
4.支持界面配置、生成、预览等功能。需另起项目开发。