SimpleEL表達(dá)式解析引擎
Simple EL是一個(gè)表達(dá)式解析引擎。它將表達(dá)式解析分成四個(gè)部分:預(yù)處理、編譯、緩存和執(zhí)行。這四個(gè)步驟任意一部分都可以替換,類似設(shè)計(jì)模式中的Template Method。
缺省的實(shí)現(xiàn)是:將表達(dá)式處理成Java Source,調(diào)用Tools.jar的Javac API動(dòng)態(tài)編譯,緩存變異后反射得到的實(shí)例,使得表達(dá)式的解析速度和Java靜態(tài)編譯的速度接近。
這是一個(gè)性能極致、擴(kuò)展性良好的表達(dá)式解析引擎。
介紹項(xiàng)目的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"); // 注冊(cè)兩個(gè)類型為Integer的變量
Map ctx = new HashMap();
ctx.put("a", 3);
ctx.put("b", 4);
Assert.assertEquals(7, service.eval(ctx, "@a + @b"));評(píng)論
圖片
表情
