1.相关教程
相关教程:
https://www.cnblogs.com/atomicbomb/p/7251814.html
2.简单规则开发
开发主要分为几个部分:
pom引入:
<!--Drools-->
<dependency>
<groupId>org.kie</groupId>
<artifactId>kie-api</artifactId>
<version>${drools.version}</version>
</dependency>
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-core</artifactId>
<version>${drools.version}</version>
</dependency>
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-compiler</artifactId>
<version>${drools.version}</version>
</dependency>
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-decisiontables</artifactId>
<version>${drools.version}</version>
</dependency>
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-templates</artifactId>
<version>${drools.version}</version>
</dependency>
规则编写
1.简单规则:
举例如下
package drools
import drools.Message
dialect "mvel"
rule "hello world"
dialect "mvel"
when
m:Message(status.equals(Message.HELLO),message : info)
then
System.out.println(message);
modify(m){info="goodbye wz"+message,status=Message.GOODBYE}
end
rule "good bye"
dialect "java"
when
Message(status==Message.GOODBYE,message:info)
then
System.out.println(message);
end
相关语法在教程中有介绍
简单介绍一下
第一个规则:
根据传入的message。如果状态等于hello。并且给info赋值到message
然后打印message结果。更新message的info,设置状态为goodbye,放置到drools上下文。采用update进行更新上下文
第二个规则:
当message状态为goodbye时,打印message
规则配置
放置位置:
<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule">
<kbase name="rules" packages="rules">
<ksession name="ksession-rules"/>
<kbase name="rulesitemsimple" packages="rulesitemsimple">
<ksession name="ksession-itemsimple"/>
</kmodule>
规则加载触发
上下文销毁
最后需要delete掉fact,释放当前资源
相关结果:
3.复杂场景
根据订单列表数量进行数量判断并设置优先级。更新顾客等级。
网友评论