本文共 2082 字,大约阅读时间需要 6 分钟。
本来是没有自己写一个模板引擎的计划的,因为按我的理解,一直认为这种“语言”级的引擎,难度是非常大的。总感觉自己的水平不够,因此不敢有这个念头。直到大量使用Velocty的时候,碰到velocty诸多不尽如人意的地方,但是又无能为力,退回到JSP吧,又心不有甘。于是就期望着寻找一种语法结构接近velocty,但是又没有Velocity这些不方便之处的模板语言。于是进到一个模板语言群,一群大佬们个个至少是一个模板语言的作者,于是作者在里面表达了自己的期望,大佬们都介绍了自己的模板引擎,于是作者一个接一个的看源码,看文档。说实际,看文档,感觉都非常不错,都有自己的特色,看语法也都不错,除了一部分自己特别关注的点没有之外,其他部分都非常不错了。但是距离自己的诉求还是有差距,怎么办呢?于是就准备找一个最接近的模板引擎来进行一定的扩展,挑来挑去就挑中了jetbrick这个模板语言。
之所以挑中这个是因为以下几个原因:
好的,挑也挑了,选也选了,就开始编写TinyTemplate了,let's GO。
三天时间初步写好,又花了一周时间进行完善、测试、文档,于是就有了同学们看到的TinyTemplate
Tiny模板引擎 是一个基于Java技术构建的模板引擎,它具有体量小、性能高和扩展易的特点。 适合于所有通过文本模板生成文本类型内容的场景,如:XML、源文件、HTML等等,可以说,它的出现就是为了替换Velocity模板引擎而来,因此在指令集上在尽量与Velocity接近的同时,又扩展了一些Velocity不能很好解决问题的指令与功能,在表达多方面则尽量与java保持一致,所以非常的易学易用。
简要特点介绍
Tiny模板引擎采用编译方式,执行,因此比Velocity、FreeMarker等第一代模板引擎都快得多。但是由于使用了弱类型的方式,较强类型会稍慢一点,5%左右的性能差异,可以忽略不计。
上述数据在同一台计算机上测得。
模板引擎名称 | 性能 | 功能 |
Velocity | 4+倍 | Velocity有的功能,全部支持,且做了大量扩展的新功能 |
FreeMarker | 5+倍 | 说实际用得不是太多,所以功能方面就不便说了,理论上肯定多许多功能 |
Jetbrick | 性能略弱之3%左右 | Tiny采用弱类型,Jetbrick采用强类型;Jetbrick的附加功能函数比较多,Tiny则扩展出一些新的功能,Tiny是在学习Jetbrick基础之上搞的。 |
HTTL | 性能略弱之1%左右 | Tiny采用弱类型,HTTL采用强类型;功能方面Tiny扩充许多弥补Velocity不足的功能。 |
BEETL | 性能大致是其1.9倍左右 | 功能方面Tiny模板引擎自然会强,但是其市场应用情况较好,基础功能提供得比较多。 |
其他几种 | 性能对比看上图 | 功能方面没有深入了解,因此无法评判。 |
目前TinyTemplate的健壮度还不够好,正在进行测试中。
文档地址:
开发环境搭建:
先下载Tiny基础工程并安装之:
https://git.oschina.net/tinyframework/tiny
如果在install过程中有问题,请对比FAQ修改
源码地址:
转载地址:http://gaybx.baihongyu.com/