目录

1、应用场景:

2、实战

1.环境搭建

2.代码

3.运行结果

3、官方网站

4、总结:

关注我公众号【香菜聊游戏】


序言:继续接上篇的live template ,idea骚操作虽然好,但是使用范围有限,只能是一段代码,无法对一些重复的逻辑,重复的类进行处理,既然我们遇到了这个问题别人也会遇到,那有没有现成的技术方案呐?of course !今天就介绍下偷懒大杀器——Freemaker。【FreeMarker 是一款 模板引擎:即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件】。官方的解释真的是高级,用一句话来说就是给程序员使用的,用来做内容生成的。

1、应用场景:

FreeMarker最初的设计,是被用来在MVC模式的Web开发框架中生成HTML页面的,它没有被绑定到 Servlet或HTML或任意Web相关的东西上。它也可以用于非Web应用环境中。在我们的游戏项目中有一些缓存类,和查询数据库的代码是重复的机械性代码,因此用来生成项目内的一些通用代码结构,提高了生产效率,也减少了出错的可能性,机智。

2、实战

不管是Jsp 还是freemaker 都是内容替换,用公式来表达就是:模板 + 数据模型 = 输出。

你要做的就是理解,然后记住那些该死的标签,用完然后忘掉,重复,轮回,o(╯□╰)o。

1.环境搭建

创建maven 项目,或者直接下载 下面对应的包加入你的项目中,看你方便,建议使用maven,自动下载包,多happy。

  1. <dependency>
  2. <groupId>org.freemarker</groupId>
  3. <artifactId>freemarker</artifactId>
  4. <version>2.3.30</version>
  5. </dependency>

2.代码

模板文件:

  1. package ${packagePath};
  2. public class ${className} {
  3. public static void main(String[] args) {
  4. System.out.println("${helloWorld}");
  5. }
  6. }

生成代码

  1. package org.pdool.d20201010;
  2. import freemarker.template.Configuration;
  3. import freemarker.template.Template;
  4. import java.io.*;
  5. import java.util.HashMap;
  6. import java.util.Map;
  7. /**
  8. * @author 香菜
  9. */
  10. public class Aain {
  11. private static final String TEMPLATE_PATH ="src/main/java/org/pdool/d20201010";
  12. private static final String CLASS_PATH ="src/main/java/org/pdool/d20201010/gen/";
  13. private static final String PACKAGE_PATH = "org.pdool.d20201010.gen";
  14. public static void main(String[] args) throws Exception {
  15. //1、 创建freeMarker配置实例
  16. Configuration configuration = new Configuration();
  17. String genClassName = "HelloFreeMaker";
  18. // 2、 获取模版路径
  19. configuration.setDirectoryForTemplateLoading(new File(TEMPLATE_PATH));
  20. // 3、 准备数据,等会替换用内容,key为模板内变量
  21. Map<String, Object> dataMap = new HashMap<>();
  22. dataMap.put("packagePath", PACKAGE_PATH);
  23. dataMap.put("className", genClassName);
  24. dataMap.put("helloWorld", "hello freeMaker,from 香菜");
  25. // 4、 加载模版文件
  26. Template template = configuration.getTemplate("helloFreemaker.ftl");
  27. // 5、将生成的内容
  28. File docFile = new File(CLASS_PATH + genClassName + ".java");
  29. Writer out = new BufferedWriter(new OutputStreamWriter(newFileOutputStream(docFile)));
  30. // 6、输出文件
  31. template.process(dataMap, out);
  32. System.out.println(genClassName + ".java 文件创建成功 !");
  33. }
  34. }

3.运行结果

3、官方网站

上面介绍了基本的使用,在你使用的过程中可能需要一些其他的标签,可以查阅官方网站。

官方网站的链接:http://freemarker.foofun.cn/index.html,网站上有完整的介绍,今天主要还是介绍下怎么快速的入门,官方的网站上太全,等你遇到问题再去查也不着急。

4、总结:

关注我公众号【香菜聊游戏】,专注游戏技术,还有源码可以领取哦。

不过是内容替换而已,相信会Java的同学基本一眼就能看明白,和Jsp 同理,跟着规则来,将生成的内容写入到文件,免去一些日常的代码操作。

疯狂提升开发效率,留点时间划划水,找朋友聊聊天,带其他的同学飞,展示下你的技术,何乐而不为。

使用步骤:

第一步:创建一个Configuration对象,直接new一个对象。

第二步:设置模板文件所在的路径。

第三步:设置模板文件使用的字符集。一般就是utf-8。

第四步:加载一个模板,创建一个模板对象。

第五步:创建一个模板使用的数据集。一般是Map。

第六步:创建一个Writer对象,一般创建一FileWriter对象,指定生成的文件名。

第七步:调用模板对象的process方法输出文件。

第八步:关闭流。

作者:公众号一香菜聊游戏

链接:https://blog.csdn.net/nanhuaibeian/article/details/108959397

html游戏代码_实现了代码自动生成,开发效率妥妥的提升,升职加薪跟上相关推荐

  1. mybatis生成mysql代码_如何让 Mybatis 自动生成代码,提高开发效率

    Actually being alone is not lonely.The real loneliness is when you miss someone. 其实一个人并不孤单,想念一个人的时候才 ...

  2. eladmin代码自动生成_如何让 Mybatis 自动生成代码

    1 创建代码生成器 1.1 创建Maven项目 1.2 配置 generator.xml 1.3 配置 pom.xml 1.4 使用及测试 2 XML 配置详解 2.1 优先 2.2 官网没有的 &l ...

  3. eladmin代码自动生成_如何让Mybatis自动生成代码

    点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 作者:阿进的写字台 cnblogs.com/homejim/p/9782403.html ...

  4. 实现了代码自动生成,开发效率妥妥的提升,升职加薪跟上

    目录 1.应用场景: 2.实战 1.环境搭建 2.代码 3.运行结果 3.官方网站 4.总结: 关注我公众号[香菜聊游戏] 序言:继续接上篇的live template ,idea骚操作虽然好,但是使 ...

  5. 1 代码_给你代码:Workbox介绍(1)

    Workbox是一组库和Node模块,可轻松缓存资产并充分利用用于构建Progressive Web Apps的功能. 1.安装 1.直接cdn引入 importScripts ('https://s ...

  6. 收藏本站html,加入收藏代码_加入收藏代码 -收藏本站的代码

    摘要 腾兴网为您分享:加入收藏代码 -收藏本站的代码,追书神器,智慧医疗,云端学习,央视影音等软件知识,以及workflow,电脑管家2017,自动考勤表,双录系统,国泰君安富易,佳缘佳信,谷歌浏览器 ...

  7. Lombok — Java代码自动生成 开发利器

    http://www.jiucool.com/lombok-java-eclipse/ 最近回家闲暇之余,发现了老外一款不错的工具,决定引入项目当中,这款工具就是Lombok. 一.Lombok是什么 ...

  8. 手游方舟怎么输入代码_方舟自定义代码怎么输入 | 手游网游页游攻略大全

    发布时间:2016-02-16 我的世界手机版代码输入方法 代码怎么用.我的世界手机版代码怎么输入?我的世界手机版代码怎么用?很多玩家对此不是很清楚,下面小编为大家介绍一下我的世界手机版代码怎么用,希 ...

  9. h5故障代码_美的空调故障代码h5 看完你就知道了

    操作方法 01 空调没有"h5"故障代码,故障代码"hs"常被人误认为"h5",故障代码"hs"表示空调正在自动除霜,正 ...

最新文章

  1. 编译arm平台的ethtool
  2. zw版【转发·台湾nvp系列Delphi例程】HALCON RegionToBin1
  3. 机器学习理论引导 电子版_机器学习理论篇1:机器学习的数学基础(2)
  4. SQLi LABS Less-39
  5. Leetcode每日一题:973.k-closest-points-to-origin(最接近原点的K个点)
  6. 映美530k驱动不能安装问题
  7. jq 判断手机端还是PC端
  8. pic12f1823单片机入门_PIC单片机:如何建立PICKit3程序编写电路
  9. 在Linux上配置基于Web的网络流量监控系统的方法
  10. 读英语计算机书籍读后感,英语读后感
  11. 聚美优品根据ID取商品详情 API
  12. (转载)Linux内核源代码情景分析---第四章 进程与进程调度
  13. 初中计算机新课标培训心得,初中数学新课标学习心得体会
  14. 程序员准备跳槽了,如何选择下一家IT公司?
  15. 视频之四:视频流连接
  16. 【BZOJ2844】albus就是要第一个出场 线性基 高斯消元
  17. GolangRoadmap首次注册邀请码
  18. NumbericUtil工具类(实现数字及数字格式化的基本功能:精确的加减乘除法、金额数字转 成中文等。)
  19. MQTT协议应用实例
  20. java clob类型怎么插入数据库_在Java + Oracle环境下 对于clob类型的数据的插入

热门文章

  1. 最全面的 python 字符串拼接总结(带注释版)
  2. python socket实现文件传输(防粘包)
  3. java 常量pi_JAVA的常量
  4. rediscluster全局数据_redis迁移,从redis cluster集群迁移数据到另外一个redis cluster集群...
  5. python 网络编程 问题记录
  6. C++ 创建对象时带括号和不带括号的区别
  7. python 什么是先验概率?
  8. java面试换背景颜色_证件照换底色 证件照换背景 证件照背景颜色
  9. java switch char_Java7中Switch为什么只支持byte、short、char、int、String
  10. centos8 改主题颜色 黑色改白色