一个典型的DRL文件:
①package com.sample //包名,不可以与关键字冲突
②import com.sample.DroolsTest.Message;//本文件需要导入的类
③global java.util.List myGlobalList;//全局变量
④//定义函数体
function String hello(String name) {
return "Hello "+name+"!";
}
⑤rule "myRule"
no-loop true //执行一次后,是否能被再次激活
salience 100 //优先级别
⑥when
m : Message( status == Message.HELLO, message : message )
⑦then
m.setMessage( "Goodbye cruel world" );
m.setStatus( Message.GOODBYE );
update( m );
myGlobalList.add( "Hello World" );//使用global 变量
System.out.println( hello( "Bob" ) );//调用定义函数
End
①package com.sample
包名,不可以与关键字冲突。一个包通过名称空间描绘,这样很好的保持了一组规则的独立性。
②import
标记就像java中的含义一样。对于任何要用在规则中的对象,你需要指定完整的路径和类型名。Drools从同名的java包中自动导入类。
③global
如果多个包定义了同样名称的全局变量,它们必须使用同样的类型,并且全部指向同一个全局值。全部变量通常用来返回数据,获得提供数据或服务给规则使用。
为了使用全局变量,你必须:
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余4页未读,立即下载