IK Expression表達式解析執(zhí)行器
IK Expression是一個開源的(OpenSource),可擴展的(Extensible),基于java語言開發(fā)的一個超輕量級(Super lightweight)的公式化語言解析執(zhí)行工具包。
IK Expression V2.0不依賴于任何第三方的java庫。它做為一個簡單的jar,可以集成于任意的Java應用中。這包括了JavaEE應用(基于應用服務器的), Java桌面應用以及Java WebStart方式的應用。
IK Expression最初誕生的原因是為了能增強工作流引擎,如jBPM等對流程配置的靈活度。使其能在流程運行期獲得同配置期一樣靈活地對執(zhí)行邏輯條件 進行變更。經(jīng)過擴展后的IK Expression還可以適用于各種常規(guī)業(yè)務系統(tǒng)的動態(tài)條件配置,如需要圖形化配置應用的場合,或是模擬Excel電子表格的公式運算的場景。
同EL和BeanScript不同,IK Expression的設計目標是面向最終用戶的,因此它被設計成語法簡單(像數(shù)學算式),通俗易懂(支持中文變量及函數(shù)名)但功能有限的解析引擎。如果 你需要一個功能強大的表達式引擎,也許IK Expression并不是最好的選擇。
IK Expression 組件結(jié)構(gòu)圖
代碼示例:
/**
* Hello World Example
* @param args
*/
public static void main(String[] args){
if(args.length == 0){
args = new String[1];
args[0] = "IK Expression";
}
//定義表達式
String expression = "\"Hello World \" + 用戶名";
//給表達式中的變量userName付上下文的值
List<Variable> variables = new ArrayList<Variable>();
variables.add(Variable.createVariable("用戶名", args[0]));
//執(zhí)行表達式
Object result = ExpressionEvaluator.evaluate(expression, variables);
System.out.println("Result = " + result);
}
