一、导入maven依赖

<project xmlns=" xmlns:xsi=" xsi:schemaLocation="

<modelVersion>4.0.0</modelVersion>

<groupId>cn.test</groupId>

<artifactId>freemarket</artifactId>

<version>0.0.1-SNAPSHOT</version>

<packaging>war</packaging>

<dependencies>

<dependency>

<groupId>org.freemarker</groupId>

<artifactId>freemarker</artifactId>

<version>2.3.23</version>

</dependency>

</dependencies>

<build>

<plugins>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-compiler-plugin</artifactId>

<version>2.0.2</version>

<configuration>

<source>1.8</source>

<target>1.8</target>

</configuration>

</plugin>

<!-- <plugin>

<artifactId>maven-war-plugin</artifactId>

<version>2.4</version>

<configuration>

<warSourceDirectory>src/main/webapp</warSourceDirectory>

</configuration>

</plugin> -->

</plugins>

<finalName>${project.artifactId}</finalName>

</build>

</project>

二、新建com.freemarker.hello.templates包,并在该包下编写模板文件test.ftl

package ${classPath};

//java项目www fhadmin org

public class ${className} {

private Integer ${Id};

private String ${userName};

private String ${password};

public Integer get${Id}(){

return ${Id};

}

public void set${Id}(Integer ${Id}){

this.${Id}=${Id};

}

public String get${userName}(){

return ${userName};

}

public void set${userName}(String ${userName}){

this.${userName}=${userName};

}

public String get${password}(){

return ${password};

}

public void set${password}(String ${password}){

this.${password}=${password};

}

}

三、编写运行生成对应Java代码类

package com.freemark.hello;

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileOutputStream;

import java.io.OutputStreamWriter;

import java.io.Writer;

import java.util.HashMap;

import java.util.Map;

import freemarker.template.Configuration;

import freemarker.template.Template;

//java项目www fhadmin org

public class FreemarkerDemo {

private static final String TEMPLATE_PATH = "src/main/java/com/freemark/hello/templates";

private static final String CLASS_PATH = "src/main/java/com/freemark/hello";

public static void main(String[] args) {

// step1 创建freeMarker配置实例

Configuration configuration = new Configuration();

Writer out = null;

try {

// step2 获取模版路径

configuration.setDirectoryForTemplateLoading(new File(TEMPLATE_PATH));

// step3 创建数据模型

Map<String, Object> dataMap = new HashMap<String, Object>();

dataMap.put("classPath", "com.freemark.hello");

dataMap.put("className", "User");

dataMap.put("Id", "Id");

dataMap.put("userName", "userName");

dataMap.put("password","password");

// step4 加载模版文件

Template template = configuration.getTemplate("test.ftl");

// step5 生成数据

File docFile = new File(CLASS_PATH + "\\" + "User.java");

out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(docFile)));

// step6 输出文件

template.process(dataMap, out);

System.out.println("^^^^^^^^^^^^^^^^^^^^^^^^User.java 文件创建成功 !");

} catch (Exception e) {

e.printStackTrace();

} finally {

try {

if (null != out) {

out.flush();

}

} catch (Exception e2) {

e2.printStackTrace();

}

}

}

}

四、步骤三成功,刷新(refresh)项目即可,看到com.freemark.hello有一个User类。

freemarker 生成 Java 代码相关推荐

  1. mybatis-plus生成java代码

    文章目录 前言 一.mybatis-plus生成java代码是什么 二.使用步骤 1.创建maven项目 2.导入项目依赖 3.创建代码生成器CodeGenerator.java 4.代码生成器Cod ...

  2. 如何使用模板Thymeleaf来自动生成java代码

    文章目录 前言 如何使用模板Thymeleaf来自动生成java代码 01 Thymeleaf 是什么? 02 Thymeleaf与springBoot的集成即使用 03 如何使用模板Thymelea ...

  3. CXF wsdl2java 生成java代码供客户端使用

    CXF wsdl2java 生成java代码供客户端使用 环境配置: 1.下载apache-cxf-2.6.2在环境变量中配置CXF_HOME 值为E:\gavin\cxf\apache-cxf-3. ...

  4. 【Android APT】注解处理器 ( 根据注解生成 Java 代码 )

    文章目录 一.生成 Java 代码 二.实现 IButterKnife 接口 三.视图绑定主要操作 四.完整注解处理器代码 五.博客资源 Android APT 学习进阶路径 : 推荐按照顺序阅读 , ...

  5. Protobuf生成Java代码(命令行)

    1.说明 本文介绍Protobuf生成Java代码的方法, 下载必须的Protobuf工具, 然后通过命令行, 把.proto文件生成Java代码. 2.准备Protobuf工具 2.1.获取prot ...

  6. Protobuf生成Java代码(Maven)

    1.说明 本文介绍Protobuf生成Java代码的方法, 配置对应的Maven插件, 把.proto文件生成Java代码. 2.插件配置 创建Maven工程grpc-compile, 修改pom.x ...

  7. 通过物理模型生成Java代码

    通过物理模型生成Java代码 软件开发过程中,我们一般是先针对数据库建模,物理建模完成后,生成数据库表,编码阶段的时候我们会针对数据库表生成大量的Javaeban或者是实体类 Powertdesign ...

  8. java插件开发_编写一个IDEA插件之:自动生成Java代码

    我很喜欢IDEA的一键自动生成代码功能,例如自动生成构造方法.字段的Get/Set方法.ToString方法等等,除此之外,也有一些插件提供自动生成代码的功能,例如我们所熟悉的GsonFormat插件 ...

  9. 分享sina的短链生成java代码

    比如可以将http://zuidaima.com/转换为http://t.cn/zlsvWVq 如下图: 原创不易,转载请注明出处分享sina的短链生成java代码 package com.zuida ...

最新文章

  1. Windows Azure Mobile Services增加了对 Android的支持并扩展其适用范围至东亚地区
  2. 罗定中学2021年高考成绩查询,2020年罗定市各中学高考喜报!罗定中学、廷锴纪念、罗定实验均创历史...
  3. mongodb创建local库用户_mongodb用户创建与授权
  4. Firefox 4网页演示:宣布Web O’Wonder的奇迹
  5. 【opencv系列02】OpenCV4.X图像读取与显示
  6. harbor镜像仓库-https访问的证书配置 (docker配置harbor https证书)
  7. ASP.NET提取多层嵌套json数据的方法
  8. 浏览器窗口控制---使用localStorage
  9. linux 提取cpio_15. Linux提取RPM包文件(cpio命令)详解
  10. Java 8发布一年后,IDE和编译器尚未完全就绪
  11. 算法高级(11)-缓存淘汰算法研究
  12. DB Manager access to SQLite
  13. 吴恩达机器学习3——逻辑回归、正则化
  14. (第三场) C Shuffle Cards 【STL_rope || splay】
  15. php session 加密,php session cookie加密实例
  16. 无法访问工作组计算机修复工具,局域网共享一键修复工具
  17. Spring教程动画文字版2
  18. PMP学习笔记 第11章 项目风险管理
  19. java咖啡馆_Java咖啡馆(11):Java插件技术
  20. MySQL数据库必会的增删查改操作(CRUD)

热门文章

  1. zookeeper中展示所有节点_Zookeeper数据结构与监听机制
  2. python easy install_Python 安装easy_install详解
  3. halcon从入门到精通pdf_机器视觉软件开发新人入门必看 --机器视觉软件开发学习路径...
  4. c语言数组求逆序对,LeetCode 面试题51. 数组中的逆序对
  5. ubuntu16.04引导修复不能开机、grub丢失等——这是一剂良药
  6. [视频教程] ubuntu系统下安装最新版PHP7.3.X环境
  7. [題解](并查集)luogu_P2391 白雪皚皚
  8. java基础69 JavaScript产生伪验证码(网页知识)
  9. 对现代软件工程开发看法
  10. jQuery-1.9.1源码分析系列(十六)ajax——ajax处理流程以及核心函数