Drools 规则文件 ——语法属性
1.salience
功能:设置规制执行的优先级值:数字(数字越大执行优先级越高)示例:
rule "rule1"salience 1wheneval(true)
then
System.out.println("rule1");
end
2.no-loop
功能:控制已经执行的规则条件再次满足是否再次执行值:true/false示例:
rule "rule1"no-loop truewhen
$customer:Customer(name=="张三")
then
update($customer);System.out.println("customer name:"+$customer.getName());
End3.activation-group功能:若干个规则划分成一个组值:分组名称示例:rule "rule2"activation-group "test"salience 10wheneval(true)thenSystem.out.println("rule2 execute");endrule "rule1"activation-group "test"salience 9wheneval(true)thenSystem.out.println("rule1 execute");endnote:如果同一组规则,谁的salience高就执行谁,没有则按顺序执行最后同组最后那个规则4.declare作用:Drools除了可以接受用户在外部向 WorkingMemory当中插入现成的Fact对象,还允许用户在规则文件当中定义一个新的 Fact对象。语法:declare Address熟悉名 : 类型end示例:package com.demo.factdeclare Addresscity : StringaddressName : Stringendrule "rule1"salience 2wheneval(true);thenAddress add = new Address();add.setCity("中国上海");add.setAddressName("中国上海松江区");insert(add);end5.date-expires功能:当系统时间<=date-expires后才会触发值:日期默认格式为dd-MMM-yyyy可以设置其它时间格式如yyyy-MM-dd,需在代码设置系统时间格式System.setProperty("drools.dateformat", "yyyy-MM-dd");示例:rule "rule1"date-expires "2009-09-27"wheneval(true);thenendSystem.out.println("rule1 is execution!");