代码生成器

Jboot 内置了一个简易的代码生成器,可以用来生成model层和Service层的基础代码,在生成代码之前,请先配置jboot.properties关于数据库相关的配置信息,Jboot 代码生成器会通过该配置去链接数据库。

  1. jboot.datasource.type=mysql
  2. jboot.datasource.url=jdbc:mysql://127.0.0.1:3306/jbootdemo
  3. jboot.datasource.user=root
  4. jboot.datasource.password=your_password

编写带有 main 方法的可以运行的工具类,调用 JbootBaseModelGenerator、JbootModelGenerator、JbootServiceInterfaceGenerator、JbootServiceImplGenerator 的 generate() 方法即可。

例如:

  1. public class GenTester {
  2. public static void main(String[] args) {
  3. //配置数据量的连接信息,可以通过 JbootApplication.setBootArg 来配置
  4. //也可以在 jboot.properties 里配置
  5. JbootApplication.setBootArg("jboot.datasource.url", "jdbc:mysql://127.0.0.1:3306/jbootdemo");
  6. JbootApplication.setBootArg("jboot.datasource.user", "root");
  7. JbootApplication.setBootArg("jboot.datasource.password", "123456");
  8. String modelPackage = "io.jboot.test.codegen.model"; //生成的Model的包名
  9. String baseModelPackage = "io.jboot.test.codegen.modelbase"; //生成的BaseModel的包名
  10. //Model存放的路径,一般情况下是 /src/main/java 下,如下是放在 test 目录下
  11. String modelDir = PathKit.getWebRootPath() + "/src/test/java/" + modelPackage.replace(".", "/");
  12. String baseModelDir = PathKit.getWebRootPath() + "/src/test/java/" + baseModelPackage.replace(".", "/");
  13. System.out.println("start generate...");
  14. System.out.println("generate dir:" + modelDir);
  15. //开始生成 Model 和 BaseModel 的代码
  16. new JbootBaseModelGenerator(baseModelPackage, baseModelDir).setGenerateRemarks(true).generate();
  17. new JbootModelGenerator(modelPackage, baseModelPackage, modelDir).generate();
  18. String servicePackage = "io.jboot.test.codegen.service"; // service 层的接口包名
  19. String serviceImplPackage = "io.jboot.test.codegen.service.provider"; // service 层的接口实现类包名
  20. //设置 service 层代码的存放目录
  21. String serviceOutputDir = PathKit.getWebRootPath() + "/src/test/java/" + servicePackage.replace(".", "/");
  22. String serviceImplOutputDir = PathKit.getWebRootPath() + "/src/test/java/" + serviceImplPackage.replace(".", "/");
  23. //开始生成代码
  24. new JbootServiceInterfaceGenerator(servicePackage, serviceOutputDir, modelPackage).generate();
  25. new JbootServiceImplGenerator(servicePackage, serviceImplOutputDir, modelPackage).setImplName("provider").generate();
  26. }
  27. }
  28. `