rule 标准格式:
一个 rule 的标准定义格式如下, attributes 用来进行rule的配置,比如设定优先级.
rule "name"
attributes
when
LHS
then
RHS
end
常用的attributes
- salience :设置优先级, int 型取值, 可正可负, 默认为0, 数值越大优先级越高
- dialect: 用来设定 RHS 部分语法, 默认是 java, 也可以使 mvel, 推荐使用 java
- enabled: 布尔类型, 是否启用该规则
- no-loop: 防止死循环
- activation-group: 激活分组, 同一个分组中只有一个规则可被触发, 两种场景: (1)多个规则如果是非此即彼的关系, 可以用这个属性; (2) 调试时经常搭配 salience 属性一起使用, 达到只允许最高优先级的规则被执行.
- date-effective, 设置规则生效日期, 默认格式是
dd-MMM-yyy
, 不太适合我们的习惯, 我们可以在java程序中设置日期格式, 代码为:System.setProperty("drools.dateformat","yyyy-MM-dd")