为了实现工作流中对脚本的支持,简单的玩了一下 BeanShell,这个小小的嵌入式 Java 代码解释器可以将 Java 语言像动态脚本一样执行,几行命令,它就能把一段 Java 代码给玩转。
工作流中有个这样的简单案例,当一笔单子金额大于 50万时,应该将任务分配给 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”));
}
运行结果是打印出了:SeniorAgent
可以看出,BeanShell 用非常动态化的方式,完成了我们一个简单的案例的处理,这里,我们只需要将需要解析的 Java 语言的脚本交给 BeanShell 的 Interceptor,并把脚本中用到的参数值传入,就可以了,最后,我们把运算结果赋给一个变量,然后获取变量结果,就可以了。
看到 Developer Works 网站上有一篇 BeanShell 实现公式管理的文章: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 阅读(3273)
评论(1) 编辑 收藏 所属分类:
Java