涉水模板引擎領域,純屬不當心。
在此對如下人員表示強烈感謝與致敬:
@sub jetbrick做者
@sept
@webit webit做者
@羅格林 rythm做者
@閒.大賦 beetl做者
以及許許多多雖然沒有列出來,可是在我寫tinytemplate時幫助過個人人。 java
原本是沒有本身寫一個模板引擎的計劃的,由於按個人理解,一直認爲這種「語言」級的引擎,難度是很是大的。總感受本身的水平不夠,所以不敢有這個念頭。直到大量使用Velocty的時候,碰到velocty諸多不盡如人意的地方,可是又無能爲力,退回到JSP吧,又心不有甘。因而就指望着尋找一種語法結構接近velocty,可是又沒有Velocity這些不方便之處的模板語言。因而進到一個模板語言羣,一羣大佬們個個至少是一個模板語言的做者,因而做者在裏面表達了本身的指望,大佬們都介紹了本身的模板引擎,因而做者一個接一個的看源碼,看文檔。說實際,看文檔,感受都很是不錯,都有本身的特點,看語法也都不錯,除了一部分本身特別關注的點沒有以外,其餘部分都很是不錯了。可是距離本身的訴求仍是有差距,怎麼辦呢?因而就準備找一個最接近的模板引擎來進行必定的擴展,挑來挑去就挑中了jetbrick這個模板語言。 git
之因此挑中這個是由於如下幾個緣由: web
好的,挑也挑了,選也選了,就開始編寫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://my.oschina.net/tinyframework/blog/206718
源碼地址: