Java表達式解析引擎 SimpleEL

fmms 12年前發布 | 82K 次閱讀 Java Java開發

Simple EL是一個表達式解析引擎。它將表達式解析分成四個部分:預處理、編譯、緩存和執行。這四個步驟任意一部分都可以替換,類似設計模式中的Template Method。

缺省的實現是:將表達式處理成Java Source,調用Tools.jar的Javac API動態編譯,緩存變異后反射得到的實例,使得表達式的解析速度和Java靜態編譯的速度接近。

這是一個性能極致、擴展性良好的表達式解析引擎。

介紹項目的PPT:http://code.alibabatech.com/svn/SimpleEL/trunk/doc/SimpleEL.pptx 
SVN:http://code.alibabatech.com/svn/SimpleEL 
JIRA:http://code.alibabatech.com/jira/browse/SIMPLEEL 
wiki:http://code.alibabatech.com/wiki/display/SimpleEL/Home 

使用范例:

import com.alibaba.simpleEL.eval.DefaultExpressEvalService;  
import com.alibaba.simpleEL.preprocess.DefaultVariantResolver.Type;  

DefaultExpressEvalService service = new DefaultExpressEvalService();  
service.regsiterVariant(Type.Integer, "a", "b"); // 注冊兩個類型為Integer的變量  

Map ctx = new HashMap();  
ctx.put("a", 3);  
ctx.put("b", 4);  

Assert.assertEquals(7, service.eval(ctx, "@a + @b"));  

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