Drools的Java入门Demo
程序员文章站
2022-05-22 11:22:09
...
1.pom.xml中添加Drools的依赖包:
<dependency>
<groupId>org.kie</groupId>
<artifactId>kie-api</artifactId>
<version>7.1.0.Final</version>
</dependency>
参考:KIE是jBoss里面一些相关项目的统称,例如jBPM和Drools。这些项目都有一定的关联关系,并且存在一些通用的API,比如说涉及到构建(building)、部署(deploying)和加载(loading)等方面的,这些API就都会以KIE作为前缀来表示这些是通用的API。
2.创建HelloDrools:
package yzh;
import org.kie.api.KieServices;
import org.kie.api.runtime.KieContainer;
import org.kie.api.runtime.KieSession;
public class HelloDrools {
public static void main(String[] args) {
KieServices kieServices = KieServices.Factory.get();
// KieContainer kieContainer = kieServices.newKieClasspathContainer();
KieContainer kieContainer = kieServices.getKieClasspathContainer();//kmodule.xml
KieSession kieSession = kieContainer.newKieSession("helloWorldSession");
//加入数据
yzh.Message message = new yzh.Message();
message.setId("123");
message.setName("haha");
kieSession.insert(message);
//执行规则
int i = kieSession.fireAllRules();//fire:火
System.out.println("========"+i);
kieSession.dispose();//处置,处理
}
}
其中Message对象:
package yzh;
public class Message {
String id;
String name;
public Message() {
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Message(String id, String name) {
this.id = id;
this.name = name;
}
}
3.在resources目录下创建META-INF文件夹,新建kmodule.xml配置文件:
<?xml version="1.0" encoding="UTF-8" ?>
<kmodule xmlns="http://www.drools.org/xsd/kmodule">
<kbase name="helloWorldBase">
<ksession name="helloWorldSession"/>
</kbase>
</kmodule>
4.在resources目录下新建规则的配置文件helloworldDrools.drl,文件名helloworldDrools随意起:
dialect "mvel"
rule "helloworldDrools"
when
eval(true)
then
System.out.println("hi Drools I can see you");
end
rule "hello2"
when
m : yzh.Message(id=="123",name=="haha")
then
System.out.println("=========get fact and then rule operate fact========");
end
rule "hello3"
when
m : yzh.Message(id=="456",name=="haha")
// s : String("haha")
then
System.out.println("=========get fact and then rule operate fact456========");
end
5.执行,可以看到执行结果:
hi Drools I can see you
=========get fact and then rule operate fact========
========2
上一篇: Java面试—JDK1.8接口和抽象类
下一篇: 迪杰特斯拉算法堆优化
推荐阅读
-
入门的java游戏小程序教程(简单java小程序代码)
-
java从入门到精通哪个版本好(免费的编程自学网站)
-
入门的java游戏小程序教程(简单java小程序代码)
-
java计算机编程入门教程(免费的编程自学网站)
-
java从入门到精通哪个版本好(免费的编程自学网站)
-
java 学习笔记(入门篇)_java的基础语法
-
Java学习笔记(5)--- Number类和Math 类,String类的应用,Java数组入门
-
java 学习笔记(入门篇)_java的安装与配置
-
hadoop入门之通过java代码实现将本地文件上传到hadoop的文件系统
-
JAVA WEB快速入门之从编写一个基于SpringBoot+Mybatis快速创建的REST API项目了解SpringBoot、SpringMVC REST API、Mybatis等相关知识