freemarker 生成 Java 代码
一、導(dǎo)入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};
? ? }
}
三、編寫運行生成對應(yīng)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 創(chuàng)建freeMarker配置實例
? ? ? ? Configuration configuration = new Configuration();
? ? ? ? Writer out = null;
? ? ? ? try {
? ? ? ? ? ? // step2 獲取模版路徑
? ? ? ? ? ? configuration.setDirectoryForTemplateLoading(new File(TEMPLATE_PATH));
? ? ? ? ? ? // step3 創(chuàng)建數(shù)據(jù)模型
? ? ? ? ? ? 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 生成數(shù)據(jù)
? ? ? ? ? ? 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 文件創(chuàng)建成功 !");
? ? ? ? } catch (Exception e) {
? ? ? ? ? ? e.printStackTrace();
? ? ? ? } finally {
? ? ? ? ? ? try {
? ? ? ? ? ? ? ? if (null != out) {
? ? ? ? ? ? ? ? ? ? out.flush();
? ? ? ? ? ? ? ? }
? ? ? ? ? ? } catch (Exception e2) {
? ? ? ? ? ? ? ? e2.printStackTrace();
? ? ? ? ? ? }
? ? ? ? }
? ? }
}
四、步驟三成功,刷新(refresh)項目即可,看到com.freemark.hello有一個User類。
總結(jié)
以上是生活随笔為你收集整理的freemarker 生成 Java 代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 矩阵连乘问题 Python 动态规划
- 下一篇: linux CentOS6.x 修改主机