代码生成器:可以生成代码的程序
代码生成器=模版+数据+合成机制
优点:
1.节省人力成本
2.易于代码规范控制
接下来介绍一款代码生成的工具=。=!Freemaker
在IntelliJ IDEA开发软件中教大家如何使用(其实所有开发软件的原理都一样,如Eclipse同样适用)~
博主用的是mac系统,因此有些细节与windows有所不同,请自行判断。
-创建项目并添加依赖
1.创建新项目
2.Create from archetype前面打勾,选择maven-archetype-queickstart,然后点击下一步
3.GroupId和ArtifactId随自己写。
4.
5.Maven可用默认,也可选择自己配置的,然后下一步设置项目名,完成。
6.点击侧面Maven Projects后,点击刷新
6.把以下代码考入pom.xml的dependencies下,如果代码报红的话,点击右边的complie执行下载即可(记得再按一遍右边Maven Projects的刷新哦!!不然后面类无法调取到依赖中的元素!!)
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.23</version>
</dependency>
-环境初始化
常用API
1.在这个文件夹下右键创建一个java类
2.在main目录下创建名为resources的文件夹(用于放置模版文件),并通过Project Structure将文件夹指定为resources目录。
3.随便写一个模版文件放入.在rousources文件夹下创建File文件,以.ftl
结尾(以下是随手写的模版文件,仅供参考)
<html>
<head>
</head>
<body>
hello ${name}
</body>
</html>
4.编写第一步创建的java类
以下为我的代码,仅供参考
package cn.code;
import freemarker.template.Configuration;
import freemarker.template.Template;
import java.io.*;
import java.util.HashMap;
import java.util.Map;
/**
* @author Krystal
* @create 2018-09-03 上午10:30
*/
public class Generator {
private Configuration configuration;
//1.完成环境初始化
public void init() throws Exception {//抛出为最大异常
//1-1实例化
configuration=new Configuration(Configuration.getVersion());
//1-2设置模版所在路径
String path=this.getClass().getClassLoader().getResource("").getPath();
configuration.setDirectoryForTemplateLoading(new File(path));
}
//2.生成代码
public void process(String tempName,String savePath) throws Exception {
//获取模版对应实例
Template template=configuration.getTemplate(tempName);
//组装数据
Map param=new HashMap();
param.put("name","Tom");//在模版内加入Tom
//初始化保存路径
FileOutputStream stream=new FileOutputStream(savePath);
OutputStreamWriter outputStreamWriter=new OutputStreamWriter(stream);
//传参,生成数据
template.process(param, outputStreamWriter);
}
public static void main(String[] args) {
//将类进行实例化
Generator generator=new Generator();
try {
generator.init();
generator.process("hello.ftl","/Users/monkey/Desktop/hello.html");//括号内为模版路径和生成模版保存路径。mac系统和windows系统路径不同,请小伙伴们自行修改
} catch (Exception e) {
e.printStackTrace();
}
}
}
这样模版就生成html啦,打开是酱紫滴: