表達式引擎JSEL介紹

xyang81 14年前發布 | 5K 次閱讀 .NET SSL SOA

JSEL是一款非常簡單,高效的表達式引擎。
說他簡單:因為他帶上標準ECMA函數庫、Lite模板執行環境后,jar也只有90k;除common-logging外,再無其他依賴。
說他高效:因為據目前的測試數據,他的性能是同類產品中最高的一個。
Ognl/MVEL/Aviator/JSEL四款引擎的對比

JSEL的具體特點如下: 

基于ECMA262標準的子集
JSEL是一個兼容 JavaScript 運算規則的簡單的表達式解釋引擎。
支持ECMA標準的運算符、函數庫并內置了JSON支持。
基本語法是JavaScript的一個子集,基本語法有良好群眾基礎。

一個可以完全自定義的表達式系統
全新運算符支持,運算符別名,優先級控制,內置對象設置,等等,一切皆有可能。你完全可以在JSEL基礎上DIY一套適合你自己的表達式系統。
詳情可參考:http://code.google.com/p/lite/wiki/JSELExtension

執行效率遠高于同類
其實,本人在開發過程中,并沒有太注重效率,甚至為保持與JavaScript的兼容性,我不得不采用影響性能的設計。
然而,發布出來后,一做性能測試,反成了意外的驚喜。
我將另外撰文列出性能對比的詳細數據,精彩稍后繼續,不要離開^_^

內置功能強大的JSON解釋支持
因為JSEL本身是基于JavaScript規則的,JSON本身就是JavaScript功能的子集,那么JSEL自然也就是一個天然的 JSON工具,此外,表達式的編譯,本身就繼承了JSON解析的功能,而且,我們也吧JSON支持的功能提出為獨立的模塊,相比官方的JSON解 析,JSEL的JSON功能更簡單,更有獨到的優點【稍后繼續補充】

這里也有少許介紹:http://code.google.com/p/lite/wiki/JSON
補充:常見表達式引擎執行性能比較:http://www.javaeye.com/topic/732354

不僅是一個表達式
此外JSEL還提供了一些常用的工具支持,如命令行解析器,這是一個在表達式基礎上建立起來的功能強大的命令行分析程序,如果你想編寫一些基于命令行的工具程序,那么JSEL絕對是您最棒的助手。

該工具的基本用法簡介:http://code.google.com/p/lite/wiki/CPEL

背后是一個空前強大的模板系統
JSEL并不是一個為了表達式而編寫的表達式引擎,他本來只是Lite模板的一個基本功能,目前Lite模板系統正在做全面重構。這里就先留個懸念吧。以后你會知道的^_^

------------------------------
JSEL基于LGPL開源協議發布,(LiteRT-yyMMdd.jar,與Lite模板運行環境一起打包發布,不足100k),你可以從如下地址下載,并將其功能集成到你的系統中。
http://code.google.com/p/lite/downloads/list

 本文由用戶 xyang81 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!