Java超级实用的Freemarker工具类

目录
  • 一、工具类
  • 二、测试

一、工具类

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工具类内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Springboot整合FreeMarker的实现示例

    目录 一.项目搭建 1.新建模块 2.导入依赖 :将不相关的依赖删掉 3.新建软件包,放入student实体类 4.新建StudentMapper接口 5.Springboot04Application内引用mapper 6.application.yml文件配置 7.测试 8.将切面.util包.启动器导入 9.新建service层 10.新建controller层 11.运行启动类Springboot04Application,访问localhost:8080网址 二.freemarker介

  • SpringBoot整合Freemarker的基本步骤

    添加pom依赖 <!-- springboot整合freemarker --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency> 在application.yml中添加相关配置 # 配置freemarker spring:

  • Java模版引擎Freemarker

    FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写 FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序 虽然FreeMarker具有一些编程的能力,但通常由Java程序准备要显示的数据,由FreeMarker生成页面,通过模板显示准备的数据(如下图) FreeMarker不是一个Web应用框架,而适合作为Web应用框架一个组件 FreeMarker与容器无关,因为它并不知道HTTP或Servlet:FreeMarker同

  • freemarker简介_动力节点Java学院整理

    FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写 FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序 虽然FreeMarker具有一些编程的能力,但通常由Java程序准备要显示的数据,由FreeMarker生成页面,通过模板显示准备的数据. FreeMarker不是一个Web应用框架,而适合作为Web应用框架一个组件 FreeMarker与容器无关,因为它并不知道HTTP或Servlet:FreeMarker同样可以应

  • Java用freemarker导出word实用示例

    最近一个项目要导出word文档,折腾老半天,发现还是用freemarker的模板来搞比较方便省事,现总结一下关键步骤,供大家参考,这里是一个简单的试卷生成例子. 一.模板的制作 先用Word做一个模板,如下图: (注意,上面是有表格的,我设置了边框不可见)然后另存为XML文件,之后用工具打开这个xml文件,有人用firstobject XML Editor感觉还不如notepad++,我这里用notepad++,主要是有高亮显示,和元素自动配对,效果如下: 上面黑色的地方基本是我们之后要替换的地

  • Java超级实用的Freemarker工具类

    目录 一.工具类 二.测试 一.工具类 public class FreemarkerUtil {     /**      * 根据模板,利用提供的数据,生成文件      * @param ftlNameWithPath 模板文件      * @param data 数据      * @param aimFileName 最终生成的文件      * @throws IOException      * @throws TemplateException      */     publ

  • 利用java生成二维码工具类示例代码

    二维码介绍 二维条形码最早发明于日本,它是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的,在代码编制上巧妙地利用构成计算机内部逻辑基础的"0"."1"比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理. 如下为java生成二维码工具类,可以选择生成文件,或者直接在页面生成,话不多说了,来一起看看详细的示例代码吧. 示例代码 import java.aw

  • java实现图片裁切的工具类实例

    本文实例讲述了java实现图片裁切的工具类.分享给大家供大家参考,具体如下: package com.yanek.util; import java.awt.Rectangle; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.Iterator; import javax.im

  • Java汉字转成汉语拼音工具类

    Java汉字转成汉语拼音工具类,需要用到pinyin4j.jar包. import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType; import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat; import net.sourceforge.pinyin4j.format.HanyuP

  • java实现的导出Excel工具类实例

    本文实例讲述了java实现的导出Excel工具类.分享给大家供大家参考,具体如下: ExcelExportUtil: package com.excel; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.HashSet; import java.util.Map; import java.util.Set; import java.

  • java公众平台通用接口工具类HttpConnectUtil实例代码

    实例如下: package com.common.util; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.ConnectException; import java.net.HttpURLConnection; import java.net.URL; import

  • Java语言描述MD5加密工具类实例代码

    编程中经常有用到MD5加密的情况,Java语言并没有像PHP一样提供原生的MD5加密字符串的函数,需要MD5加密的时候,往往需要自己写. 代码如下: import java.security.MessageDigest; public class MD5 { //公盐 private static final String PUBLIC_SALT = "demo" ; //十六进制下数字到字符的映射数组 private final static String[] hexDigits =

  • java关闭流连接IO工具类

    本文实例为大家分享了java关闭流连接IO工具类的具体代码,供大家参考,具体内容如下 package com.demo.utils; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.Reader; import java.io.Writer; /** * 关闭流连接IO工具类 * @author dongyangyang * @Date 2016

  • java数据库唯一id生成工具类

    本文实例为大家分享了java数据库唯一id生成工具类的具体代码,供大家参考,具体内容如下 import java.io.File; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Map; import java.util.Random; import java.util.UUID; import org.springframework.dao.EmptyResultDataAccessExce

  • java实现随机抽取奖品工具类

    本文实例为大家分享了java实现随机抽取奖品工具类的具体代码,供大家参考,具体内容如下 随机抽取奖品 整体思路: 1.奖品集合 + 概率比例集合 2.将奖品按集合中的顺序概率计算成所占比例区间,放入比例集合.并产生一个随机数加入其中,进行排序. 3.排序后随机数落在那个区间就表示那个区间的奖品被抽中. 4.返回的随机数在集合中的索引,该索引就是奖品集合的中的索引. 5.比例区间的计算通过概率相加获得. //奖品的实体类 public class Gift { private String id;

随机推荐