欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java超级实用的Freemarker工具类

程序员文章站 2023-01-28 12:58:02
目录一、工具类二、测试一、工具类public class freemarkerutil {    /**     * 根据模板,利用提供的数据,生成文件     * @param ftlnamewit...

一、工具类

public class freemarkerutil {
    /**
     * 根据模板,利用提供的数据,生成文件
     * @param ftlnamewithpath 模板文件
     * @param data 数据
     * @param aimfilename 最终生成的文件
     * @throws ioexception
     * @throws templateexception
     */
    public static void execute(string ftlnamewithpath, map<string, object> data, string aimfilename) throws ioexception, templateexception {
        configuration cfg = new configuration(configuration.version_2_3_25);//创建freemarker配置实例

        int i = ftlnamewithpath.lastindexof("/") == -1 ? ftlnamewithpath.lastindexof("\\") : ftlnamewithpath.lastindexof("/");

        cfg.setdirectoryfortemplateloading(new file(ftlnamewithpath.substring(0, i + 1)));

        cfg.setdefaultencoding("utf-8");

        template t1 = cfg.gettemplate(ftlnamewithpath.substring(i + 1));//加载模板文件
        writer out = new filewriter(new file(aimfilename));
        t1.process(data, out);
        out.flush();
        out.close();
    }

}

二、测试

  • 模板文件:service.ftl
package com.resume.service;

import com.baomidou.mybatisplus.extension.service.iservice;
import com.resume.domain.${classname};

import java.util.list;

/**
* @author: 梁云亮
* @date: 2021/7/14 13:51
* @describe:
*/
public interface ${classname}service extends iservice<${classname}> {

    /**
    * 查询出所有的可以使用的${comment}信息
    *
    * @return
    */
    list<${classname}> listallusable${classname}();

    /**
    * 改变指定编号的${comment}的状态
    *
    * @param id
    * @param status
    * @return 返回值表示受影响的记录的行数
    */
    boolean modify${classname}status(integer id, integer status);

    /**
    * 根据条件修改${comment}信息
    * @param ${objname}
    * @return
    */
    boolean modify(${classname} ${objname});

}
  • 测试代码:
public class genapplication {
    private static string classname = "project";
    private static string objname = "project";
    private static string comment = "期日经验";

    private static string basepath = "src/main/java/com/resume/";

    public static void main(string[] args) throws ioexception, templateexception {
        // 生成service接口
        genservice(classname, objname, comment);
    }

    /**
     * 生成service接口
     *
     * @param classname
     * @param objname
     * @throws ioexception
     * @throws templateexception
     */
    private static void genservice(string classname, string objname, string comment) throws ioexception, templateexception {
        string ftlnamewithpath = basepath + "utils/gen/ftl/service.ftl";
        string aimfilename = basepath + "service/" + classname + "service.java";
        map<string, object> map = new hashmap<>();
        map.put("objname", objname);
        map.put("classname", classname);
        map.put("comment", comment);
        freemarkerutil.execute(ftlnamewithpath, map, aimfilename);
    }

}

到此这篇关于java超级实用的freemarker工具类的文章就介绍到这了,更多相关实用的freemarker工具类内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!