From 52cf4e1f03b3cc610e919393fc235919ef2d0f37 Mon Sep 17 00:00:00 2001 From: wangbing Date: Fri, 10 Apr 2020 23:12:55 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Former-commit-id: 80b8d86e0baab8487ce10466bf3cd66007f17d09 --- .../dbtool/javafx/JavaFxApplication.java | 15 +- .../dbtool/javafx/manger/ManagerFactory.java | 2 +- .../dbtool/javafx/manger/ProjectManager.java | 3 +- .../dbtool/javafx/manger/XmlManager.java | 9 ++ .../manger/callable/SpringBootCallable.java | 140 +++++++++--------- .../xyz/wbsite/dbtool/javafx/po/Project.java | 56 ++++--- .../modules/SpringBoot/java/Application.ftl | 4 +- src/main/resources/modules/SpringBoot/pom.ftl | 11 +- .../SpringBoot/resources/application-dev.ftl | 4 +- .../SpringBoot/resources/application-prod.ftl | 4 +- .../modules/SpringBoot/test/application.ftl | 4 +- 11 files changed, 141 insertions(+), 111 deletions(-) diff --git a/src/main/java/xyz/wbsite/dbtool/javafx/JavaFxApplication.java b/src/main/java/xyz/wbsite/dbtool/javafx/JavaFxApplication.java index 22acfa2f..3f1afb3a 100644 --- a/src/main/java/xyz/wbsite/dbtool/javafx/JavaFxApplication.java +++ b/src/main/java/xyz/wbsite/dbtool/javafx/JavaFxApplication.java @@ -44,6 +44,7 @@ import xyz.wbsite.dbtool.javafx.ctrl.DetailModuleController; import xyz.wbsite.dbtool.javafx.ctrl.DetailProjectController; import xyz.wbsite.dbtool.javafx.ctrl.DetailTableController; import xyz.wbsite.dbtool.javafx.ctrl.MainController; +import xyz.wbsite.dbtool.javafx.enums.DataBase; import xyz.wbsite.dbtool.javafx.enums.FieldType; import xyz.wbsite.dbtool.javafx.manger.ManagerFactory; import xyz.wbsite.dbtool.javafx.manger.ProjectManager; @@ -449,26 +450,26 @@ public class JavaFxApplication extends Application { detailProjectController.getMultiDB().selectedProperty().addListener(new ChangeListener() { @Override public void changed(ObservableValue observable, Boolean oldValue, Boolean newValue) { - currentProject.setMultiDB(newValue); + currentProject.setNeedMoreDB(newValue); } }); detailProjectController.getSysMD().selectedProperty().addListener(new ChangeListener() { @Override public void changed(ObservableValue observable, Boolean oldValue, Boolean newValue) { - currentProject.setSysMD(newValue); + currentProject.setNeedSys(newValue); } }); detailProjectController.getCloud().selectedProperty().addListener(new ChangeListener() { @Override public void changed(ObservableValue observable, Boolean oldValue, Boolean newValue) { - currentProject.setCloud(newValue); + currentProject.setNeedCloud(newValue); } }); detailProjectController.getDatabase().selectedToggleProperty().addListener(new ChangeListener() { @Override public void changed(ObservableValue observable, Toggle oldValue, Toggle newValue) { RadioButton radioButton = (RadioButton) newValue; - currentProject.setDatabase(radioButton.getText()); + currentProject.setDatabase(DataBase.valueOf(radioButton.getText())); } }); } @@ -625,8 +626,8 @@ public class JavaFxApplication extends Application { detailProjectController.getProjectName().setText(currentProject.getProjectName()); detailProjectController.getProjectBasePackage().setText(currentProject.getProjectBasePackage()); detailProjectController.getProjectAuthor().setText(currentProject.getProjectAuthor()); - detailProjectController.getMultiDB().setSelected(currentProject.getMultiDB()); - detailProjectController.getSysMD().setSelected(currentProject.getSysMD()); + detailProjectController.getMultiDB().setSelected(currentProject.isNeedMoreDB()); + detailProjectController.getSysMD().setSelected(currentProject.isNeedSys()); ObservableList toggles = detailProjectController.getDatabase().getToggles(); Toggle toggle = toggles.get(0); for (Toggle tog : toggles) { @@ -636,7 +637,7 @@ public class JavaFxApplication extends Application { } } detailProjectController.getDatabase().selectToggle(toggle); - detailProjectController.getCloud().setSelected(currentProject.isCloud()); + detailProjectController.getCloud().setSelected(currentProject.isNeedCloud()); if (gridPane != null) { mDetail.getChildren().clear(); diff --git a/src/main/java/xyz/wbsite/dbtool/javafx/manger/ManagerFactory.java b/src/main/java/xyz/wbsite/dbtool/javafx/manger/ManagerFactory.java index 5e971962..245f892e 100644 --- a/src/main/java/xyz/wbsite/dbtool/javafx/manger/ManagerFactory.java +++ b/src/main/java/xyz/wbsite/dbtool/javafx/manger/ManagerFactory.java @@ -6,7 +6,7 @@ public class ManagerFactory { private static XmlManager xmlManager = null; private static JsonManager jsonManager = null; private static ReflashManager reflashManager = null; - private static ProjectManager projectManager; + private static ProjectManager projectManager = null; private static FreeMarkerManager freeMarkerManager; static { diff --git a/src/main/java/xyz/wbsite/dbtool/javafx/manger/ProjectManager.java b/src/main/java/xyz/wbsite/dbtool/javafx/manger/ProjectManager.java index 389f3084..717d1ded 100644 --- a/src/main/java/xyz/wbsite/dbtool/javafx/manger/ProjectManager.java +++ b/src/main/java/xyz/wbsite/dbtool/javafx/manger/ProjectManager.java @@ -352,8 +352,7 @@ public class ProjectManager { new Thread() { @Override public void run() { - Callable callback = null; - callback = new SpringBootCallable(project, path); + Callable callback = new SpringBootCallable(project, path); Future submit = service.submit(callback); try { diff --git a/src/main/java/xyz/wbsite/dbtool/javafx/manger/XmlManager.java b/src/main/java/xyz/wbsite/dbtool/javafx/manger/XmlManager.java index 92297c7f..9e00c900 100644 --- a/src/main/java/xyz/wbsite/dbtool/javafx/manger/XmlManager.java +++ b/src/main/java/xyz/wbsite/dbtool/javafx/manger/XmlManager.java @@ -4,6 +4,7 @@ import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; import xyz.wbsite.dbtool.javafx.annotation.Property; +import xyz.wbsite.dbtool.javafx.enums.DataBase; import xyz.wbsite.dbtool.javafx.enums.FieldType; import xyz.wbsite.dbtool.javafx.po.Field; import xyz.wbsite.dbtool.javafx.po.Module; @@ -60,6 +61,14 @@ public class XmlManager { declaredField.setAccessible(true); if (declaredField.getType() == String.class) { declaredField.set(project, textContent); + } else if (declaredField.getType() == DataBase.class) { + DataBase dataBase = null; + try { + dataBase = DataBase.valueOf(textContent); + } catch (IllegalArgumentException e) { + dataBase = DataBase.MySQL; + } + declaredField.set(project, dataBase); } else if (declaredField.getType() == Boolean.class || declaredField.getType() == boolean.class) { declaredField.setBoolean(project, getBoolean(textContent)); } diff --git a/src/main/java/xyz/wbsite/dbtool/javafx/manger/callable/SpringBootCallable.java b/src/main/java/xyz/wbsite/dbtool/javafx/manger/callable/SpringBootCallable.java index 9f35bc76..065dc3fc 100644 --- a/src/main/java/xyz/wbsite/dbtool/javafx/manger/callable/SpringBootCallable.java +++ b/src/main/java/xyz/wbsite/dbtool/javafx/manger/callable/SpringBootCallable.java @@ -19,6 +19,7 @@ import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; +import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.concurrent.Callable; @@ -26,17 +27,13 @@ import java.util.concurrent.Callable; public class SpringBootCallable implements Callable { private String root; - private DataBase dataBase; private Project project; - private boolean cloud; private AbstractDBmapper dBmapper; private FreeMarkerManager freeMarkerManager; public SpringBootCallable(Project project, String root) { this.root = root; - this.dataBase = DataBase.valueOf(project.getDatabase()); this.project = project; - this.cloud = project.isCloud(); this.freeMarkerManager = ManagerFactory.getFreeMarkerManager(); this.dBmapper = ProjectManager.dBmapper; } @@ -66,17 +63,17 @@ public class SpringBootCallable implements Callable { File testResourcesDir = Tool.createPath(projectDir.getAbsolutePath(), "src", "test", "resources"); // 生成POM - generatePom(projectDir, project, dataBase); + generatePom(projectDir, project); {//生成java文件 //生成 Controller System.out.println("生成模块:action"); - generateController(Tool.createPath(domainDir.getAbsolutePath(), "action"), project, dataBase); + generateController(Tool.createPath(domainDir.getAbsolutePath(), "action"), project); // 生成 Config System.out.println("生成模块:config"); - generateConfig(Tool.createPath(domainDir.getAbsolutePath(), "config"), project, dataBase); + generateConfig(Tool.createPath(domainDir.getAbsolutePath(), "config"), project); {// 模块 @@ -88,58 +85,58 @@ public class SpringBootCallable implements Callable { File moduleDir = Tool.createPath(domainDir.getAbsolutePath(), "module", module.getModuleName()); System.out.println("生成模块:Entity"); - generateEntity(Tool.createPath(moduleDir.getAbsolutePath(), "ent"), module, dataBase); + generateEntity(Tool.createPath(moduleDir.getAbsolutePath(), "ent"), module); System.out.println("生成模块:Mapper"); - generateMapper(Tool.createPath(moduleDir.getAbsolutePath(), "mpr"), module, dataBase); + generateMapper(Tool.createPath(moduleDir.getAbsolutePath(), "mpr"), module); System.out.println("生成模块:Manager"); - generateManager(Tool.createPath(moduleDir.getAbsolutePath(), "mgr"), module, dataBase); + generateManager(Tool.createPath(moduleDir.getAbsolutePath(), "mgr"), module); System.out.println("生成模块:Request"); - generateRequest(Tool.createPath(moduleDir.getAbsolutePath(), "req"), module, dataBase); + generateRequest(Tool.createPath(moduleDir.getAbsolutePath(), "req"), module); System.out.println("生成模块:Response"); - generateResponse(Tool.createPath(moduleDir.getAbsolutePath(), "rsp"), module, dataBase); + generateResponse(Tool.createPath(moduleDir.getAbsolutePath(), "rsp"), module); } - if (project.getSysMD()) {//生成系统模块 + if (project.isNeedSys()) {//生成系统模块 Module module = new Module(); module.setModuleName("system"); module.setProjectAuthor(project.getProjectAuthor()); module.setProjectBasePackage(project.getProjectBasePackage()); module.setProjectName(project.getProjectName()); File moduleDir = Tool.createPath(domainDir.getAbsolutePath(), "module", "system"); - generateSystemModule(moduleDir, module, dataBase); + generateSystemModule(moduleDir, module); } } // frame等内容 System.out.println("生成模块:frame"); - generateFrame(Tool.createPath(domainDir.getAbsolutePath(), "frame"), project, dataBase); + generateFrame(Tool.createPath(domainDir.getAbsolutePath(), "frame"), project); // Task System.out.println("生成模块:task"); - generateTask(Tool.createPath(domainDir.getAbsolutePath(), "task"), project, dataBase); + generateTask(Tool.createPath(domainDir.getAbsolutePath(), "task"), project); // Application System.out.println("生成模块:Application"); - generateApplication(Tool.createPath(domainDir.getAbsolutePath()), project, dataBase); + generateApplication(Tool.createPath(domainDir.getAbsolutePath()), project); } {//生成resources文件 System.out.println("生成模块:Resources"); - generateResources(resourcesDir, project, dataBase); + generateResources(resourcesDir, project); System.out.println("生成模块:Static"); - generateStatic(resourcesDir, project, dataBase); + generateStatic(resourcesDir, project); System.out.println("生成模块:Templates"); - generateTemplates(resourcesDir, project, dataBase); + generateTemplates(resourcesDir, project); } {//生成Test System.out.println("生成模块:Test"); - generateTest(testDomainDir, project, dataBase); + generateTest(testDomainDir, project); } {//生成Test Resources System.out.println("生成模块:Test Resources"); - generateTestResources(testResourcesDir, project, dataBase); + generateTestResources(testResourcesDir, project); } System.out.println("finish"); return true; @@ -152,12 +149,12 @@ public class SpringBootCallable implements Callable { * @param root * @param project */ - public void generatePom(File root, Project project, DataBase dataBase) { + public void generatePom(File root, Project project) { HashMap ctx = new HashMap(); ctx.put("projectName", project.getProjectName()); ctx.put("basePackage", project.getProjectBasePackage()); - ctx.put("dataBase", dataBase.toString()); - ctx.put("cloud", cloud); + ctx.put("dataBase", project.getDatabase().toString()); + ctx.put("project", project); freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "pom.xml"), "SpringBoot/pom.ftl", ctx); } @@ -167,7 +164,7 @@ public class SpringBootCallable implements Callable { * @param root * @param project */ - public void generateController(File root, Project project, DataBase dataBase) { + public void generateController(File root, Project project) { Tool.clear(root); HashMap ctx = new HashMap(); ctx.put("basePackage", project.getProjectBasePackage()); @@ -197,7 +194,7 @@ public class SpringBootCallable implements Callable { } } - if (project.getSysMD()) {//生成系统模块 + if (project.isNeedSys()) {//生成系统模块 File system = Tool.createPath(ajax.getAbsolutePath(), "system"); for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/action/ajax/system/")) { @@ -223,7 +220,7 @@ public class SpringBootCallable implements Callable { } } - if (project.getSysMD()) {//生成系统模块 + if (project.isNeedSys()) {//生成系统模块 File system = Tool.createPath(api.getAbsolutePath(), "system"); for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/action/api/system/")) { @@ -235,7 +232,7 @@ public class SpringBootCallable implements Callable { freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "GlobalController.java"), "SpringBoot/java/action/GlobalController.java", ctx); } - public void generateConfig(File root, Project project, DataBase dataBase) { + public void generateConfig(File root, Project project) { if (!root.exists()) { root.mkdirs(); } else { @@ -255,10 +252,10 @@ public class SpringBootCallable implements Callable { freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "ScheduleConfig.java"), "SpringBoot/java/config/ScheduleConfig.java", ctx); freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "ThreadPoolConfig.java"), "SpringBoot/java/config/ThreadPoolConfig.java", ctx); freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "WebMvcConfig.java"), "SpringBoot/java/config/WebMvcConfig.java", ctx); - if (dataBase.name().equals(DataBase.SQLite.name())) { + if (project.getDatabase().name().equals(DataBase.SQLite.name())) { freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "SQLiteConfig.java"), "SpringBoot/java/config/SQLiteConfig.java", ctx); } - if (project.getMultiDB()) { + if (project.isNeedMoreDB()) { freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "MapperMainConfig.java"), "SpringBoot/java/config/MapperMainConfig.java", ctx); freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "MapperTwoConfig.java"), "SpringBoot/java/config/MapperTwoConfig.java", ctx); } @@ -270,7 +267,7 @@ public class SpringBootCallable implements Callable { * @param root * @param md */ - public void generateEntity(File root, Module md, DataBase dataBase) { + public void generateEntity(File root, Module md) { if (!root.exists()) { root.mkdirs(); } else { @@ -297,7 +294,7 @@ public class SpringBootCallable implements Callable { * @param root * @param md */ - public void generateMapper(File root, Module md, DataBase dataBase) { + public void generateMapper(File root, Module md) { if (!root.exists()) { root.mkdirs(); } else { @@ -307,7 +304,7 @@ public class SpringBootCallable implements Callable { ctx.put("tool", Tool.class); ctx.put("module", md); - ctx.put("dataBase", dataBase.toString()); + ctx.put("dataBase", project.getDatabase().toString()); ctx.put("basePackage", md.getProjectBasePackage()); ctx.put("moduleName", md.getModuleName()); ctx.put("author", md.getProjectAuthor()); @@ -319,14 +316,14 @@ public class SpringBootCallable implements Callable { if (table.getSys()) { // freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), dataBase.name() + "_" + Tool.lineToClassName(table.getTableName()) + "Mapper" + ".xml"), "SpringBoot/java/module/mpr/" + dataBase.name() + "_mapper.xml", ctx); - freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), Tool.lineToClassName(table.getTableName()) + "Mapper" + ".xml"), "SpringBoot/java/module/mpr/" + dataBase.name() + "_mapper.xml", ctx); + freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), Tool.lineToClassName(table.getTableName()) + "Mapper" + ".xml"), "SpringBoot/java/module/mpr/" + project.getDatabase().name() + "_mapper.xml", ctx); } else { freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), Tool.lineToClassName(table.getTableName()) + "Mapper" + ".xml"), "SpringBoot/java/module/mpr/Nosys_mapper.ftl", ctx); } } } - public void generateManager(File root, Module md, DataBase dataBase) { + public void generateManager(File root, Module md) { if (!root.exists()) { root.mkdirs(); } else { @@ -354,7 +351,7 @@ public class SpringBootCallable implements Callable { * @param root * @param md */ - public void generateRequest(File root, Module md, DataBase dataBase) { + public void generateRequest(File root, Module md) { if (!root.exists()) { root.mkdirs(); } else { @@ -408,7 +405,7 @@ public class SpringBootCallable implements Callable { * @param root * @param md */ - public void generateResponse(File root, Module md, DataBase dataBase) { + public void generateResponse(File root, Module md) { if (!root.exists()) { root.mkdirs(); } else { @@ -456,7 +453,7 @@ public class SpringBootCallable implements Callable { } } - public void generateSystemModule(File root, Module md, DataBase dataBase) { + public void generateSystemModule(File root, Module md) { File ent = Tool.createPath(root.getAbsolutePath(), "ent"); File mpr = Tool.createPath(root.getAbsolutePath(), "mpr"); File mgr = Tool.createPath(root.getAbsolutePath(), "mgr"); @@ -468,7 +465,7 @@ public class SpringBootCallable implements Callable { ctx.put("moduleName", md.getModuleName()); ctx.put("author", md.getProjectAuthor()); ctx.put("date", new Date()); - ctx.put("dataBase", dataBase.toString()); + ctx.put("dataBase", project.getDatabase().toString()); for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/module/system/ent/")) { freeMarkerManager.outputTemp(Tool.createFile(ent.getAbsolutePath(), name), "SpringBoot/java/module/system/ent/" + name, ctx); @@ -481,10 +478,10 @@ public class SpringBootCallable implements Callable { for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/module/system/mpr/")) { if (name.endsWith(".java")) { freeMarkerManager.outputTemp(Tool.createFile(mpr.getAbsolutePath(), name), "SpringBoot/java/module/system/mpr/" + name, ctx); - } else if (name.contains(dataBase.name())) { + } else if (name.contains(project.getDatabase().name())) { //todo dateBase调试 // freeMarkerManager.outputTemp(Tool.createFile(mpr.getAbsolutePath(), name), "SpringBoot/java/module/system/mpr/" + name, ctx); - freeMarkerManager.outputTemp(Tool.createFile(mpr.getAbsolutePath(), name.replaceAll(dataBase.name() + "_", "")), "SpringBoot/java/module/system/mpr/" + name, ctx); + freeMarkerManager.outputTemp(Tool.createFile(mpr.getAbsolutePath(), name.replaceAll(project.getDatabase().name() + "_", "")), "SpringBoot/java/module/system/mpr/" + name, ctx); } } @@ -503,7 +500,7 @@ public class SpringBootCallable implements Callable { * @param root * @param project */ - public void generateFrame(File root, Project project, DataBase dataBase) { + public void generateFrame(File root, Project project) { if (!root.exists()) { root.mkdirs(); } else { @@ -558,7 +555,16 @@ public class SpringBootCallable implements Callable { } //utils for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/frame/utils/")) { - freeMarkerManager.outputTemp(Tool.createFile(utils.getAbsolutePath(), name), "SpringBoot/java/frame/utils/" + name, ctx); + ArrayList filters = new ArrayList<>(); + filters.add("MailUtil.java"); + + if (filters.contains(name)) { + if (project.isNeedEMail()) { + freeMarkerManager.outputTemp(Tool.createFile(utils.getAbsolutePath(), name), "SpringBoot/java/frame/utils/" + name, ctx); + } + } else { + freeMarkerManager.outputTemp(Tool.createFile(utils.getAbsolutePath(), name), "SpringBoot/java/frame/utils/" + name, ctx); + } } //validation @@ -574,7 +580,7 @@ public class SpringBootCallable implements Callable { * @param root * @param project */ - public void generateTask(File root, Project project, DataBase dataBase) { + public void generateTask(File root, Project project) { if (!root.exists()) { root.mkdirs(); } else { @@ -597,14 +603,12 @@ public class SpringBootCallable implements Callable { * @param root * @param project */ - public void generateApplication(File root, Project project, DataBase dataBase) { - + public void generateApplication(File root, Project project) { HashMap ctx = new HashMap(); ctx.put("basePackage", project.getProjectBasePackage()); ctx.put("moduleName", project.getProjectName()); - ctx.put("multiDB", project.getMultiDB()); + ctx.put("project", project); ctx.put("timestamp", new Date().getTime()); - freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "Application.java"), "SpringBoot/java/Application.ftl", ctx); } @@ -614,19 +618,18 @@ public class SpringBootCallable implements Callable { * @param root * @param project */ - public void generateResources(File root, Project project, DataBase dataBase) { + public void generateResources(File root, Project project) { HashMap ctx = new HashMap(); ctx.put("basePackage", project.getProjectBasePackage()); ctx.put("tool", Tool.class); - ctx.put("dataBase", dataBase.toString()); + ctx.put("dataBase", project.getDatabase().toString()); ctx.put("author", project.getProjectAuthor()); ctx.put("dBmapper", dBmapper); ctx.put("date", new Date()); ctx.put("author", project.getProjectAuthor()); ctx.put("projectName", project.getProjectName()); - ctx.put("multiDB", project.getMultiDB()); - ctx.put("cloud", cloud); + ctx.put("project", project); freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "start-dev.bat"), "SpringBoot/resources/start-dev.bat", ctx); freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "start-prod.bat"), "SpringBoot/resources/start-prod.bat", ctx); freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "application-dev.properties"), "SpringBoot/resources/application-dev.ftl", ctx); @@ -645,27 +648,27 @@ public class SpringBootCallable implements Callable { File tableDir = Tool.createPath(dbtool.getAbsolutePath(), module.getModuleName() + "_table"); for (Table table : module.getTables()) { ctx.put("table", table); - freeMarkerManager.outputTemp(Tool.createFile(tableDir.getAbsolutePath(), dataBase.name() + "_" + table.getTableName() + ".sql"), "SpringBoot/resources/dbtool/table.ftl", ctx); + freeMarkerManager.outputTemp(Tool.createFile(tableDir.getAbsolutePath(), project.getDatabase().name() + "_" + table.getTableName() + ".sql"), "SpringBoot/resources/dbtool/table.ftl", ctx); } - freeMarkerManager.outputTemp(Tool.createFile(tableDir.getAbsolutePath(), dataBase.name() + "_ALL_TABLE" + ".sql"), "SpringBoot/resources/dbtool/tableAll.ftl", ctx); + freeMarkerManager.outputTemp(Tool.createFile(tableDir.getAbsolutePath(), project.getDatabase().name() + "_ALL_TABLE" + ".sql"), "SpringBoot/resources/dbtool/tableAll.ftl", ctx); } - if (project.getSysMD()) {//生成系统模块 + if (project.isNeedSys()) {//生成系统模块 File system = Tool.createPath(dbtool.getAbsolutePath(), "system_table"); for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/resources/dbtool/system/")) { - if (name.contains(dataBase.name())) { + if (name.contains(project.getDatabase().name())) { freeMarkerManager.outputTemp(Tool.createFile(system.getAbsolutePath(), name), "SpringBoot/resources/dbtool/system/" + name, ctx); } } } - if (DataBase.Oracle.name().equals(dataBase.name())) { + if (DataBase.Oracle.name().equals(project.getDatabase().name())) { File lib = Tool.createPath(root.getAbsolutePath(), "lib"); Tool.outputResource("SpringBoot/resources/lib/ojdbc7-12.1.0.2.jar", Tool.createFile(lib.getAbsolutePath(), "ojdbc7-12.1.0.2.jar")); } - if (DataBase.SQLite.name().equals(dataBase.name())) { + if (DataBase.SQLite.name().equals(project.getDatabase().name())) { File dbFile = Tool.createFile(root.getAbsolutePath(), project.getProjectName() + ".db"); Connection connection = null; Statement statement = null; @@ -699,18 +702,17 @@ public class SpringBootCallable implements Callable { } } - public void generateTestResources(File root, Project project, DataBase dataBase) { + public void generateTestResources(File root, Project project) { HashMap ctx = new HashMap(); ctx.put("basePackage", project.getProjectBasePackage()); ctx.put("projectName", project.getProjectName()); ctx.put("tool", Tool.class); - ctx.put("dataBase", dataBase.toString()); + ctx.put("dataBase", project.getDatabase().toString()); ctx.put("author", project.getProjectAuthor()); ctx.put("dBmapper", dBmapper); ctx.put("date", new Date()); - ctx.put("multiDB", project.getMultiDB()); - ctx.put("cloud", cloud); + ctx.put("project", project); freeMarkerManager.outputTemp(Tool.createFile(root.getAbsolutePath(), "application.properties"), "SpringBoot/test/application.ftl", ctx); Tool.outputResource("SpringBoot/test/logback-spring.xml", Tool.createFile(root.getAbsolutePath(), "logback-spring.xml")); } @@ -721,7 +723,7 @@ public class SpringBootCallable implements Callable { * @param root * @param project */ - public void generateStatic(File root, Project project, DataBase dataBase) { + public void generateStatic(File root, Project project) { HashMap ctx = new HashMap(); ctx.put("basePackage", project.getProjectBasePackage()); @@ -769,7 +771,7 @@ public class SpringBootCallable implements Callable { * @param root * @param project */ - public void generateTemplates(File root, Project project, DataBase dataBase) { + public void generateTemplates(File root, Project project) { {//生成 File templates = Tool.createPath(root.getAbsolutePath(), "templates"); File control = Tool.createPath(templates.getAbsolutePath(), "control"); @@ -791,7 +793,7 @@ public class SpringBootCallable implements Callable { ctx.put("author", project.getProjectAuthor()); ctx.put("date", new Date()); ctx.put("modules", project.getModules()); - ctx.put("sysMD", project.getSysMD()); + ctx.put("sysMD", project.isNeedSys()); freeMarkerManager.outputTemp(Tool.createFile(screen.getAbsolutePath(), "index.ftl"), "SpringBoot/resources/templates/screen/index.ftl", ctx); } @@ -816,7 +818,7 @@ public class SpringBootCallable implements Callable { } } - if (project.getSysMD()) {//生成系统模块 + if (project.isNeedSys()) {//生成系统模块 File system = Tool.createPath(screen.getAbsolutePath(), "system"); for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/resources/templates/screen/module/system/")) { Tool.outputResource("SpringBoot/resources/templates/screen/module/system/" + name, Tool.createFile(system.getAbsolutePath(), name)); @@ -825,7 +827,7 @@ public class SpringBootCallable implements Callable { } } - public void generateTest(File root, Project project, DataBase dataBase) { + public void generateTest(File root, Project project) { { File config = Tool.createPath(root.getAbsolutePath(), "config"); @@ -870,7 +872,7 @@ public class SpringBootCallable implements Callable { } } - if (project.getSysMD()) {//生成系统模块 + if (project.isNeedSys()) {//生成系统模块 HashMap ctx = new HashMap(); ctx.put("tool", Tool.class); ctx.put("basePackage", project.getProjectBasePackage()); diff --git a/src/main/java/xyz/wbsite/dbtool/javafx/po/Project.java b/src/main/java/xyz/wbsite/dbtool/javafx/po/Project.java index 73833054..625c3d04 100644 --- a/src/main/java/xyz/wbsite/dbtool/javafx/po/Project.java +++ b/src/main/java/xyz/wbsite/dbtool/javafx/po/Project.java @@ -2,6 +2,7 @@ package xyz.wbsite.dbtool.javafx.po; import javafx.scene.control.TreeItem; import xyz.wbsite.dbtool.javafx.annotation.Property; +import xyz.wbsite.dbtool.javafx.enums.DataBase; import java.util.ArrayList; import java.util.List; @@ -12,7 +13,6 @@ public class Project extends TreeItem { this.projectName = "EXAMPLE-WEB"; this.projectBasePackage = "com.example"; this.projectAuthor = "author"; - this.multiDB = false; } public Project(String projectName) { @@ -27,14 +27,16 @@ public class Project extends TreeItem { private String projectBasePackage; @Property("projectAuthor") private String projectAuthor; - @Property("multiDB") - private boolean multiDB; - @Property("sysMD") - private boolean sysMD; - @Property("cloud") - private boolean cloud; - @Property(value = "database",defautValue = "MySQL") - private String database; + @Property("needMoreDB") + private boolean needMoreDB; + @Property("needEMail") + private boolean needEMail; + @Property("needSys") + private boolean needSys; + @Property("needCloud") + private boolean needCloud; + @Property(value = "database") + private DataBase database; /** * 对象 @@ -80,35 +82,43 @@ public class Project extends TreeItem { this.modules = modules; } - public boolean getMultiDB() { - return multiDB; + public boolean isNeedMoreDB() { + return needMoreDB; } - public void setMultiDB(boolean multiDB) { - this.multiDB = multiDB; + public void setNeedMoreDB(boolean needMoreDB) { + this.needMoreDB = needMoreDB; } - public boolean getSysMD() { - return sysMD; + public boolean isNeedSys() { + return needSys; } - public void setSysMD(boolean sysMD) { - this.sysMD = sysMD; + public void setNeedSys(boolean needSys) { + this.needSys = needSys; } - public boolean isCloud() { - return cloud; + public boolean isNeedCloud() { + return needCloud; } - public void setCloud(boolean cloud) { - this.cloud = cloud; + public void setNeedCloud(boolean needCloud) { + this.needCloud = needCloud; } - public String getDatabase() { + public DataBase getDatabase() { return database; } - public void setDatabase(String database) { + public void setDatabase(DataBase database) { this.database = database; } + + public boolean isNeedEMail() { + return needEMail; + } + + public void setNeedEMail(boolean needEMail) { + this.needEMail = needEMail; + } } diff --git a/src/main/resources/modules/SpringBoot/java/Application.ftl b/src/main/resources/modules/SpringBoot/java/Application.ftl index 8143094f..4141875d 100644 --- a/src/main/resources/modules/SpringBoot/java/Application.ftl +++ b/src/main/resources/modules/SpringBoot/java/Application.ftl @@ -3,7 +3,7 @@ package ${basePackage}; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.SpringBootApplication; -<#if multiDB> +<#if project.needMoreDB> import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.springframework.boot.builder.SpringApplicationBuilder; @@ -11,7 +11,7 @@ import org.springframework.boot.web.servlet.support.SpringBootServletInitializer import ${basePackage}.frame.auth.LocalData; @SpringBootApplication -<#if multiDB> +<#if project.needMoreDB> @EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class}) <#else> @EnableAutoConfiguration diff --git a/src/main/resources/modules/SpringBoot/pom.ftl b/src/main/resources/modules/SpringBoot/pom.ftl index 9686f97c..9622eca6 100644 --- a/src/main/resources/modules/SpringBoot/pom.ftl +++ b/src/main/resources/modules/SpringBoot/pom.ftl @@ -67,7 +67,16 @@ spring-boot-starter-freemarker -<#if cloud> +<#if project.needEMail> + + + javax.mail + mail + 1.4.7 + + + +<#if project.needCloud> org.springframework.cloud diff --git a/src/main/resources/modules/SpringBoot/resources/application-dev.ftl b/src/main/resources/modules/SpringBoot/resources/application-dev.ftl index 2eb868ac..cadd011a 100644 --- a/src/main/resources/modules/SpringBoot/resources/application-dev.ftl +++ b/src/main/resources/modules/SpringBoot/resources/application-dev.ftl @@ -6,7 +6,7 @@ spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/reso spring.application.name=${projectName?default("SpringBoot")} spring.main.banner-mode=CONSOLE spring.devtools.restart.enabled=true -<#if cloud> +<#if project.needCloud> eureka.client.serviceUrl.defaultZone=http://localhost:18080/eureka/ # 编码配置 @@ -17,7 +17,7 @@ server.tomcat.uri-encoding=UTF-8 # 日志配置 logging.path=D:// logging.levels=DEBUG -<#if multiDB> +<#if project.needMoreDB> # ================================================================================== <#if dataBase == 'Oracle'> # 主数据库 diff --git a/src/main/resources/modules/SpringBoot/resources/application-prod.ftl b/src/main/resources/modules/SpringBoot/resources/application-prod.ftl index 16e69d4d..4e4cd571 100644 --- a/src/main/resources/modules/SpringBoot/resources/application-prod.ftl +++ b/src/main/resources/modules/SpringBoot/resources/application-prod.ftl @@ -6,7 +6,7 @@ spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/reso spring.application.name=${projectName} spring.main.banner-mode=off spring.devtools.restart.enabled=false -<#if cloud> +<#if project.needCloud> eureka.client.serviceUrl.defaultZone=http://localhost:18080/eureka/ # 编码配置 @@ -17,7 +17,7 @@ server.tomcat.uri-encoding=UTF-8 # 日志配置 logging.path=/root/ logging.levels=INFO -<#if multiDB> +<#if project.needMoreDB> # ================================================================================== <#if dataBase == 'Oracle'> # 主数据库 diff --git a/src/main/resources/modules/SpringBoot/test/application.ftl b/src/main/resources/modules/SpringBoot/test/application.ftl index a8f9430c..64136795 100644 --- a/src/main/resources/modules/SpringBoot/test/application.ftl +++ b/src/main/resources/modules/SpringBoot/test/application.ftl @@ -6,7 +6,7 @@ spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/reso spring.application.name=${projectName?default("SpringBoot")} spring.main.banner-mode=CONSOLE spring.devtools.restart.enabled=true -<#if cloud> +<#if project.needCloud> eureka.client.serviceUrl.defaultZone=http://localhost:18080/eureka/ # 编码配置 @@ -17,7 +17,7 @@ server.tomcat.uri-encoding=UTF-8 # 日志配置 logging.path=D:// logging.levels=DEBUG -<#if multiDB> +<#if project.needMoreDB> # ================================================================================== <#if dataBase == 'Oracle'> # 主数据库