為了實(shí)現(xiàn)工作流中對腳本的支持,簡單的玩了一下 BeanShell,這個(gè)小小的嵌入式 Java 代碼解釋器可以將 Java 語言像動(dòng)態(tài)腳本一樣執(zhí)行,幾行命令,它就能把一段 Java 代碼給玩轉(zhuǎn)。
工作流中有個(gè)這樣的簡單案例,當(dāng)一筆單子金額大于 50萬時(shí),應(yīng)該將任務(wù)分配給 Senior Agent 處理,否則交給 Junior Agent 處理,我們用 BeanShell 簡單模擬這段腳本。
public static void main(String[] args) throws Exception {
Interpreter i = new Interpreter();
i.set(”price”, 1000000);
i.set(”user”, “”);
i.eval(”if(price > 500000)\n” +
“user = \”SeniorAgent\”;\n” +
“else \n” +
“user = \”JuniorAgent\”;”);
System.out.println(i.get(”user”));
}
運(yùn)行結(jié)果是打印出了:SeniorAgent
可以看出,BeanShell 用非常動(dòng)態(tài)化的方式,完成了我們一個(gè)簡單的案例的處理,這里,我們只需要將需要解析的 Java 語言的腳本交給 BeanShell 的 Interceptor,并把腳本中用到的參數(shù)值傳入,就可以了,最后,我們把運(yùn)算結(jié)果賦給一個(gè)變量,然后獲取變量結(jié)果,就可以了。
看到 Developer Works 網(wǎng)站上有一篇 BeanShell 實(shí)現(xiàn)公式管理的文章:http://www.ibm.com/developerworks/cn/java/l-formula/index.html,可以參考一下。
From: http://www.steadyxp.com/archives/851.html
posted on 2009-02-26 09:56
steady 閱讀(3286)
評論(1) 編輯 收藏 所屬分類:
Java