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.支持界面配置、生成、预览等功能。需另起项目开发。