freemarker 生成 Java 代码

一、导入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类。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值