Beetl是Bee Template Language的縮寫,它毫不是簡單的另一種模板引擎,而是新一代的模板引擎,它功能強大,性能良好,秒殺當前流行的模板引擎。並且還易學易用。html
Beetl目前版本是2.8.5,相對於其餘java模板引擎,具備功能齊全,語法直觀,性能超高,以及編寫的模板容易維護等特色。使得開發和維護模板有很好的體驗。是新一代的模板引擎。總得來講,它的特性以下:java
關於性能
在使用FastRuntimeEngine狀況下,經過與主流模板引擎Freemarker,Vecloity以及JSP對比,Beetl6倍於Freemarker,2倍於JSP。這是由於宏觀上,經過了優化的渲染引擎,IO的二進制輸出,字節碼屬性訪問加強,微觀上,經過一維數組保存上下文Context,靜態文本合併處理,經過重複使用字節數組來防止java頻繁的建立和銷燬數組,還使用模板緩存,運行時優化等方法。詳情參考附錄git
獨特功能
Beetl有些功能是發展了10多年的模板引擎所不具有的,這些功能很是利於模板的開發和維護,以下web
- 自定義佔位符和控制語句起始符號,這有利於減少模板語法對模板的傾入性,好比在html模板中,若是定義控制語句符號是
<!--:
和-->
,那麼,大部分模板文件都能經過瀏覽器打開。有的使用者僅僅採用了單個符號@
(或者單個符號「~
」)以及回車換號做爲控制語句起始符號,這又能提升開發效率- 可單獨測試的模板。無需真正的控制層和模型層,Beetl的模板就能夠單獨開發和測試
- 同時支持較爲鬆散的MVC和嚴格的MVC,若是在模板語言裏嵌入計算表達式,複雜條件表達式,以及函數調用有干涉業務邏輯嫌疑,你能夠禁止使用這些語法。
- 強大的安全輸出,經過安全輸出符號!,能在模板變量,變量屬性引用,for循環,佔位符輸出,try-catch中等各個地方提供安全輸出,保證渲染正常。
- 模板變量:運行將模板的某一部分輸出像js那樣賦值給一個變量,稍後再處理。利用模板變量能完成很是複雜的頁面佈局(簡單的佈局可以使用include,layout標籤函數)
- 類型推測,能在運行的時候推測模板變量類型,從而優化性能,也能夠經過註解的方法顯示的說明模板變量屬性(這是非必須的,但有助於IDE自動提示功能)
- 可插拔的設計,錯誤信息提示,模板引擎緩存機制,模板資源管理,本地調用的安全管理器,嚴格MVC限制,模板引擎自己都有默認的實現,但又徹底能夠自定義以適合特定需求
- 加強的語法,如for-elsefor, select-case,安全輸出符號!,省略的三元表達式 等,這些語法特別適合模板開發
- 局部渲染技術,結合如今js的ajax技術。
- 性能超高,具備最快的模板解釋引擎,同時,又有較低的CPU消耗。5-6倍於國內使用的Freemaker。適合各種模板應用,如代碼生成工具,CMS系統,普通網站,超高訪問量的門戶系統,和富客戶端JS框架整合的後臺管理應用
小白如何開始
- 須要通讀基本用法,大部分都是講解語法,而語法跟js很接近,因此能夠快速預覽,但Beetl是針對模板設計, 因此像安全輸出,標籤和html標籤,全局變量,臨時變量和共享變量,佈局技術,以及直接調用java代碼等還須要認真讀一遍。
- 若是從事web開發,還須要閱讀web集成裏的第一節「web提供的全局變量」,若是web裏還使用ajax技術,能夠閱讀「整合ajax的局部渲染技術」。
- 包含有spring,jfinal,jodd,struts 等demo能夠做爲參考學習用https://git.oschina.net/xiandafu 任何問題,均可以在ibeetl.com 社區上提問。目前答覆率是100%,提問須要詳細說明本身的指望,出錯信息,附上代碼或者圖片
原文連接: http://ibeetl.comajax