genmanager.java

来自「anewssystem新闻发布系统集成使用了spring hibernate f」· Java 代码 · 共 177 行

JAVA
177
字号

package anni.tools;

import java.io.*;
import java.util.*;
import jxl.*;
import java.text.*;
import freemarker.template.*;

@SuppressWarnings("unchecked")
public class GenManager {
    static String rootPackage;
    static String daoPackage;
    static String hibernatePackage;
    static String domainPackage;
    static String webPackage;
    static String genDir;
    static String excelFile;
    static String projectName;

    static String managerPackage;
    static String controllerPackage;

    static Template manager;
    static Template controller;
    static Template managerXml;
    static Template servletXml;

    static SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 a HH时mm分ss秒S");
    static Date now = new Date();


    /**
     * args[0] genDir "./target/gen/"
     * args[1] rootPackage "com.cysoft.sample"
     * args[2] excelFile "res/sample.xls"
     */
    static void init(String[] args) {
        genDir = args[0];
        rootPackage = args[1];
        excelFile = args[2];
        projectName = args[3];

        daoPackage = rootPackage + ".dao";
        hibernatePackage = daoPackage + ".hibernate";
        domainPackage = rootPackage + ".domain";
        webPackage = rootPackage + ".web";

        managerPackage = rootPackage + ".manager";
        controllerPackage = rootPackage + ".web";
    }

    public static void main(String[] args) throws Exception {
        init(args);

        String[] classes = ExcelUtils.getClassNames(excelFile);

        for (String pojo : classes) {
            generateManager(pojo);
            generateController(pojo);
        }

        copyPackageHtml();
        generateManagerXml(classes);
        generateServletXml(classes);

        generateWebController();
    }

    static void copyPackageHtml() throws Exception {
        FileUtils.copy("templates/src/main/java/manager/package.html",
            "target/" + projectName + "/src/main/java/" + managerPackage.replaceAll("\\.", "/") + "/package.html");
        FileUtils.copy("templates/src/main/java/domain/package.html",
            "target/" + projectName + "/src/main/java/" + domainPackage.replaceAll("\\.", "/") + "/package.html");
        FileUtils.copy("templates/src/main/java/web/package.html",
            "target/" + projectName + "/src/main/java/" + webPackage.replaceAll("\\.", "/") + "/package.html");
    }

   static void generateManager(String className) throws Exception {
        Map model = new HashMap();
        model.put("clz", className);
        model.put("pkg", rootPackage);
        model.put("pojo", className);
        model.put("now", now);
        // manager
        FreemarkerUtils.process("templates/src/main/java/manager/manager.java",
            model,
            "target/" + projectName + "/src/main/java/" + managerPackage.replaceAll("\\.", "/"),
            className + "Manager.java");
        // test
        FreemarkerUtils.process("templates/src/test/java/manager/Test.java",
            model,
            "target/" + projectName + "/src/test/java/" + managerPackage.replaceAll("\\.", "/"),
            className + "ManagerTest.java");
    }

   static void generateController(String className) throws Exception {
        Map model = new HashMap();
        model.put("clz", className);
        model.put("pkg", rootPackage);
        model.put("pojo", className);
        model.put("now", now);
        model.put("projectName", projectName);
        // manager
        FreemarkerUtils.process("templates/src/main/java/web/controller.java",
            model,
            "target/" + projectName + "/src/main/java/" + controllerPackage.replaceAll("\\.", "/"),
            className + "Controller.java");
        // test
        FreemarkerUtils.process("templates/src/test/java/web/Test.java",
            model,
            "target/" + projectName + "/src/test/java/" + controllerPackage.replaceAll("\\.", "/"),
            className + "ControllerTest.java");
    }

    static void generateManagerXml(String[] classes) throws Exception {
        Map model = new HashMap();
        model.put("classes", classes);
        model.put("pkg", rootPackage);

        FreemarkerUtils.process("templates/src/main/resources/spring/applicationContext-manager.xml",
            model,
            "target/" + projectName + "/src/main/resources/spring/",
            "applicationContext-manager.xml");
    }

    static void generateServletXml(String[] classes) throws Exception {
        Map model = new HashMap();
        model.put("classes", classes);
        model.put("pkg", rootPackage);
        model.put("projectName", projectName);

        FreemarkerUtils.process("templates/src/main/resources/spring/dispatcher-servlet.xml",
            model,
            "target/" + projectName + "/src/main/resources/spring/",
            "dispatcher-servlet.xml");

        FreemarkerUtils.process("templates/src/main/resources/spring/controller/controller.xml",
            model,
            "target/" + projectName + "/src/main/resources/spring/controller/",
            projectName + "-controller.xml");
    }

    static void generateWebController() throws Exception {
        Map model = new HashMap();
        model.put("webPackage", webPackage);
        model.put("now", now);

        // controller
        FreemarkerUtils.process("templates/src/main/java/web/AdminController.java",
            model,
            "target/" + projectName + "/src/main/java/" + webPackage.replaceAll("\\.", "/"),
            "AdminController.java");
        FreemarkerUtils.process("templates/src/main/java/web/IndexController.java",
            model,
            "target/" + projectName + "/src/main/java/" + webPackage.replaceAll("\\.", "/"),
            "IndexController.java");
        // xml
        FreemarkerUtils.process("templates/src/main/resources/spring/controller/admin-controller.xml",
            model,
            "target/" + projectName + "/src/main/resources/spring/controller",
            "admin-controller.xml");

        // test
        FreemarkerUtils.process("templates/src/test/java/web/AdminControllerTest.java",
            model,
            "target/" + projectName + "/src/test/java/" + webPackage.replaceAll("\\.", "/"),
            "AdminControllerTest.java");
        FreemarkerUtils.process("templates/src/test/java/web/IndexControllerTest.java",
            model,
            "target/" + projectName + "/src/test/java/" + webPackage.replaceAll("\\.", "/"),
            "IndexControllerTest.java");
    }

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?