FreeMarker_模板引擎_代码自动生成器_源码下载
来源:互联网 发布:golang smtp.sendmail 编辑:程序博客网 时间:2024/05/16 06:07
原文地址:http://www.cnblogs.com/hongten/archive/2013/04/05/hongten_freemarker.html
项目结构:
运行代码:
1 public static void main(String[] args) throws Exception {2 helloWorld(FTLS_PATH, HONGTEN_HELLO_WORLD_FTL);3 }
运行效果:
运行代码:
1 public static void main(String[] args) throws Exception {2 myJavaFile(FTLS_PATH,BEAN_URL,HONGTEN_MY_JAVA_FILE_FTL);3 }
运行效果:
生成的User.java文件:
==================================================================
代码部分: 你可以了解一下velocity(也是一个模板引擎):利用Velocity自动生成自定义代码_java版_源码下载
==================================================================
/freemarker/src/com/b510/freemarker/Bean.java
package com.b510.freemarker;/** * bean类 * * @author hongten(hongtenzone@foxmail.com)<br> * @date 2013-4-5 */public class Bean { /** bean 名称 */ private String name; /** bean 首字母小写名称 */ private String lowerName; /** bean 路径 */ private String beanUrl; /** dao 路径 */ private String beanDaoUrl; /** dao 实现路径 */ private String beanDaoImplUrl; /** service 路径 */ private String beanServiceUrl; /** service 实现路径 */ private String beanServiceImplUrl; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getLowerName() { return lowerName; } public void setLowerName(String lowerName) { this.lowerName = lowerName; } public String getBeanUrl() { return beanUrl; } public void setBeanUrl(String beanUrl) { this.beanUrl = beanUrl; } public String getBeanDaoUrl() { return beanDaoUrl; } public void setBeanDaoUrl(String beanDaoUrl) { this.beanDaoUrl = beanDaoUrl; } public String getBeanDaoImplUrl() { return beanDaoImplUrl; } public void setBeanDaoImplUrl(String beanDaoImplUrl) { this.beanDaoImplUrl = beanDaoImplUrl; } public String getBeanServiceUrl() { return beanServiceUrl; } public void setBeanServiceUrl(String beanServiceUrl) { this.beanServiceUrl = beanServiceUrl; } public String getBeanServiceImplUrl() { return beanServiceImplUrl; } public void setBeanServiceImplUrl(String beanServiceImplUrl) { this.beanServiceImplUrl = beanServiceImplUrl; }}
/freemarker/src/com/b510/freemarker/Annotation.java
package com.b510.freemarker;/** * 注释 * * @author hongten(hongtenzone@foxmail.com)<br> * @date 2013-4-5 */public class Annotation { /** * 作者名称 */ private String authorName; /** * 作者邮箱 */ private String authorMail; /** * 日期 */ private String date; /** * 版本 */ private String version; public String getAuthorName() { return authorName; } public void setAuthorName(String authorName) { this.authorName = authorName; } public String getAuthorMail() { return authorMail; } public void setAuthorMail(String authorMail) { this.authorMail = authorMail; } public String getDate() { return date; } public void setDate(String date) { this.date = date; } public String getVersion() { return version; } public void setVersion(String version) { this.version = version; }}
/freemarker/src/com/b510/freemarker/MyFreeMarker.java
/** * */package com.b510.freemarker;import java.io.File;import java.io.FileWriter;import java.io.OutputStreamWriter;import java.io.Writer;import java.text.SimpleDateFormat;import java.util.Date;import java.util.HashMap;import java.util.Map;import freemarker.template.Configuration;import freemarker.template.Template;/** * freemarker测试 * * @author hongten(hongtenzone@foxmail.com)<br> * @date 2013-4-5 */public class MyFreeMarker { private static Configuration configuration; private static Template template; private static Writer writer; /** * 模板文件的存放路径,这里是存放在项目根目录下的ftls文件夹中 */ public static final String FTLS_PATH = "ftls"; public static final String MESSAGE = "message"; public static final String HELLO_WORLD = "Hello World!"; public static final String HONGTEN_HELLO_WORLD_FTL = "hongten-helloworld.ftl"; public static final String HONGTEN_MY_JAVA_FILE_FTL = "hongten-myJavaFile.ftl"; // bean public static final String BEAN = "bean"; public static final String BEAN_URL = "com.b510.bean"; // annotation public static final String ANNOTATION = "annotation"; public static final String ANNOTATION_AUTHOR_NAME = "hongten"; public static final String ANNOTATION_AUTHOR_MAIL = "hongtenzone@foxmail.com"; public static final String ANNOTATION_VERSION = "1.0"; // date formate public static final String DATE_FROMATE = "yyyy-MM-dd"; public static void main(String[] args) throws Exception { // helloWorld(FTLS_PATH, HONGTEN_HELLO_WORLD_FTL); myJavaFile(FTLS_PATH, BEAN_URL, HONGTEN_MY_JAVA_FILE_FTL); } /** * 利用模板在控制台打印helloworld信息 * * @param path * 模板存放的路径 * @param ftlFile * 模板文件 * @throws Exception */ public static void helloWorld(String path, String ftlFile) throws Exception { // 创建Freemarker配置实例 configuration = new Configuration(); configuration.setDirectoryForTemplateLoading(new File(path)); // 创建数据模型 Map<String, String> root = new HashMap<String, String>(); root.put(MESSAGE, HELLO_WORLD); // 加载模板文件 template = configuration.getTemplate(ftlFile); // 显示生成的数据,这里打印在控制台 writer = new OutputStreamWriter(System.out); template.process(root, writer); writer.flush(); writer.close(); } /** * 利用freemarker生成自定义的javaBean * * @param path * 模板路径 * @param packageUrl * javaBean的url,即package名称 * @param ftlFile * 使用的模板文件 * @throws Exception */ public static void myJavaFile(String path, String packageUrl, String ftlFile) throws Exception { // 创建Freemarker配置实例 configuration = new Configuration(); configuration.setDirectoryForTemplateLoading(new File(path)); // 创建数据模型 Map<String, Object> root = new HashMap<String, Object>(); Bean bean = new Bean(); bean.setName("User"); bean.setLowerName("user"); bean.setBeanUrl(packageUrl); root.put(BEAN, bean); Annotation annotation = new Annotation(); annotation.setAuthorMail(ANNOTATION_AUTHOR_MAIL); annotation.setAuthorName(ANNOTATION_AUTHOR_NAME); annotation.setVersion(ANNOTATION_VERSION); SimpleDateFormat simpleDateFormat = new SimpleDateFormat(DATE_FROMATE); annotation.setDate(simpleDateFormat.format(new Date())); root.put(ANNOTATION, annotation); // 加载模板文件 template = configuration.getTemplate(ftlFile); String beanPath = System.getProperty("user.dir") + "/src/" + packageUrl.replace(".", "/") + "/"; File filePath = new File(beanPath); if (!filePath.exists()) { filePath.mkdirs(); } String filePathOfBean = beanPath + "/User.java"; File file = new File(filePathOfBean); if (!file.exists()) { file.createNewFile(); } // 显示生成的数据 writer = new FileWriter(file); template.process(root, writer); writer.flush(); writer.close(); }}
/freemarker/ftls/hongten-helloworld.ftl
${message}
/freemarker/ftls/hongten-myJavaFile.ftl
package ${bean.beanUrl};import java.util.Date;/** * @author ${annotation.authorName}(${annotation.authorMail})<br> * @date ${annotation.date} * * @version ${annotation.version} */public class ${bean.name} { /** * id号 */ private Integer id; /** * 姓名 */ private String name; /** * 性别 */ private String sex; /** * 生日 */ private Date birthday; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; }}
源码下载:http://files.cnblogs.com/hongten/freemarker_file.zip
0 0
- FreeMarker_模板引擎_代码自动生成器_源码下载
- FreeMarker_模板引擎_代码自动生成器_源码下载
- apache的开源项目-模板引擎(Velocity)_学习了两天就上手啦_源码下载
- apache的开源项目-模板引擎(Velocity)_学习了两天就上手啦_源码下载
- 利用Velocity自动生成自定义代码_java版_源码下载
- 自动下载源码_并编译_打包_部署_重启服务的Shell脚本
- Freemarker_内置函数_数字、字符串、日期格式化
- 工具篇_动软代码生成器
- .Net代码自动生成器下载-三种
- jquery 自动创建form表单提交代码 下拉条 ajax模板代码 添加_移除 属性_样式
- 发布基于T4模板引擎的代码生成器[Kalman Studio]
- 一个基于velocity模板引擎的代码生成器
- Java之利用Freemarker模板引擎实现代码生成器,提高效率
- Python爬虫_自动下载图片
- 学生学籍管理系统_源码下载
- Android-开机检测_模板代码
- 代码规范_4:c++ _模板
- WebForm总结Day02_模板引擎_网页三层架构
- jQuery中width(),innerWidth(),outerWidth(),outerWidth(true)
- IDEA 2016.1 Maven SpringMVC学习教程_log日志的生成(三)
- Nodejs,express博客搭建
- Spring MVC之入门
- 不得不说的LinuxC下,多模块的编译和链接(原理)
- FreeMarker_模板引擎_代码自动生成器_源码下载
- 面试题6:重建二叉树
- String类
- 关于《万万没想到》
- 形态学图像处理(二):开运算、闭运算、形态学梯度、顶帽、黑帽合辑
- memcached安装+绑定访问ip
- 解析GPU cache 中读写操作及其事件
- 智能管家项目总结(1)
- Java中的 equals() 和 ==