MyBatis Plus 代码生成器 Enjoy引擎配置(自定义生成引擎JFinal Enjoy)

MyBatis Plus 代码生成器 Enjoy引擎配置,至于模板代码自己照着代码beetl或者freemarker的写就行
继承抽象类 AbstractTemplateEngine 实现方法即可 参考Beetl的模板配置:com.baomidou.mybatisplus.generator.engine.BeetlTemplateEngine

// package top.seasmall.platform.modules.dev.codegen;	// your package path

import com.baomidou.mybatisplus.generator.config.builder.ConfigBuilder;
import com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine;
import com.jfinal.template.Engine;

import java.io.FileOutputStream;
import java.util.Map;

/**
 * Enjoy模板引擎实现文件输出
 *
 * @author liming
 * @date 2019-12-17 10:32
 */
public class EnjoyTemplateEngine extends AbstractTemplateEngine {

    private Engine enjoyEngine;
    /**
     * 模板后缀
     */
    private String templateSuffix = ".etl";

    public EnjoyTemplateEngine() {
    }

    public EnjoyTemplateEngine(String templateSuffix) {
        this.templateSuffix = templateSuffix;
    }

    @Override
    public AbstractTemplateEngine init(ConfigBuilder configBuilder) {
        super.init(configBuilder);
        if (enjoyEngine == null) {
            enjoyEngine = Engine.use();
        }
        return this;
    }

    @Override
    public void writer(Map<String, Object> objectMap, String templatePath, String outputFile) throws Exception {
        try (FileOutputStream fileOutputStream = new FileOutputStream(outputFile)) {
            enjoyEngine.getTemplate(templatePath).render(objectMap, fileOutputStream);
        }
        logger.debug("模板:" + templatePath + ";  文件:" + outputFile);
    }

    @Override
    public String templateFilePath(String filePath) {
        return filePath + templateSuffix;
    }
}

使用:

// 省略代码...
// mpg.setStrategy(strategy);	// 生成配置
mpg.setTemplateEngine(new EnjoyTemplateEngine(".html"));	// 设置使用enjoy模板引擎并指定后缀为.html
// mpg.execute();	// 执行生成

你可能感兴趣的:(MyBatis,Plus)