主机响在Java中使用groovy语言作为动态规则表达式由于在工作流设计中需要为条件分支设定条件表达式,所以需要可以动态执行的语言脚本作为工作流的规则引擎.工作流条件分支纯粹使用sql脚本肯定是不行的,经过试验,groovy 的脚本可以返回为java接受的变量.在具体的工作流实现中,我们既可以把groovy的脚本单独存放在文本文件,也可以将脚本直接存放在数据库中,在使用的时候再取出来,当然,可可以放在xml文件中.
以下是java调用groovy脚本的实例:
如何做推广1package st;
2
3import groovy.lang.GroovyClassLoader;
4import java.io.File;
5
6public class InvokeGroovy{
7public static void main(String[]args){
8ClassLoader cl=new InvokeGroovy().getClass().getClassLoader();
9GroovyClassLoader groovyCl=new GroovyClassLoader(cl);
10try
11{
12//从文件中读取
13//Class groovyClass=groovyCl.parseClass(new File("D:/project/openjweb/src/java/org/openjweb/vy"));
14//直接使用Groovy字符串,也可以获得正确结果
古诗江南春的意思15//Class groovyClass=groovyCl.parseClass("package vy;
\r\n import st.IFoo;\r\n class Foo implements IFoo{public Object run(Object foo){return23}}");
16Class groovyClass=groovyCl.parseClass("package vy;
\r\n import st.IFoo;\r\n class Foo implements IFoo {public Object run(Object foo){return2+2>1}}");//这个返回true
17
18IFoo foo=(wInstance();太想爱你 张信哲
19System.out.println(foo.run(new Integer(2)));
20}catch(Exception e){
21 e.printStackTrace();
22}
23}
24}
25
下面是vy的文本:
26package vy;
27import st.IFoo;
28class Foo implements IFoo
资源管理器已停止工作29{
30public Object run(Object foo)
31{
平行四边形是轴对称图形吗?32
33return3+2
34}
35}
36
从上面的代码看出,可以直接执行字符串的groovy脚本,运行后返回运算结果,例如2+2>1会返回true.
使用Groovy或Jruby动态语言脚本作为规则引擎解决方案将会越来越普及.
本文由西安京科皮肤病医学研究院(www.jxyy001/)负责人整理与大家分享!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论