安装drools5插件
直接解压drools-5.0-eclipse-all.zip到eclipse下的 dropins目录中。
建立一个Java Project。
引入drools必备的jar包
antlr-runtime-3.1.1.jar
core-3.4.2.v_883_R34x.jar
drools-api-5.0.1.jar
drools-compiler-5.0.1.jar
drools-core-5.0.1.jar
mvel2-2.0.10.jar
创建一个User的POJO类:
package com.test;
publicclass User {
private String loginName;
public String getLoginName() { returnloginName; }
publicvoid setLoginName(String loginName) { this.loginName = loginName; }
@Override publicint hashCode() { finalint prime = 31; int result = 1; result = prime * result + ((loginName == null) ? 0 : loginName.hashCode()); return result; }
@Override publicboolean equals(Object obj) { if (this == obj) returntrue; if (obj == null) returnfalse; if (getClass() != obj.getClass()) returnfalse; User other = (User) obj; if (loginName == null) { if (other.loginName != null) returnfalse; } elseif (!loginName.equals(other.loginName)) returnfalse; returntrue; }
@Override public String toString() { return"User [loginName=" + loginName + "]"; } }
|
新建一个规则定义文件
package com.test;
rule"rule_01" when $user : User(loginName != null) then System.out.println("hello, " + $user.getLoginName()); end |
最后写一个RuleApp规则启动类:
package com.test;
import org.drools.KnowledgeBase; import org.drools.KnowledgeBaseFactory; import org.drools.builder.KnowledgeBuilder; import org.drools.builder.KnowledgeBuilderFactory; import org.drools.builder.ResourceType; import org.drools.io.ResourceFactory; import org.drools.runtime.StatefulKnowledgeSession;
publicclass RuleApp {
publicstaticvoid main(String[] args) { KnowledgeBase knowledgeBase = createKnowledgeBase(); StatefulKnowledgeSession session = knowledgeBase .newStatefulKnowledgeSession(); try { User user = new User(); user.setLoginName("zhangsan"); session.insert(user); session.fireAllRules(); } finally { session.dispose(); } }
privatestatic KnowledgeBase createKnowledgeBase() { KnowledgeBuilder builder = KnowledgeBuilderFactory .newKnowledgeBuilder(); builder.add(ResourceFactory.newClassPathResource("helloworld.drl", User.class), ResourceType.DRL); if (builder.hasErrors()) { thrownew RuntimeException(builder.getErrors().toString()); } KnowledgeBase knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase(); knowledgeBase.addKnowledgePackages(builder.getKnowledgePackages()); return knowledgeBase; }
}
|
测试输出
hello, zhangsan |
相关推荐
《 Drools 6 入门指南:从零开始探索规则引擎的世界》 Drools 是一个强大、开源的业务规则管理系统(BRMS),它提供了一种高效、灵活的方式来编写、测试和执行业务规则。在本篇文章中,我们将深入探讨 Drools 6 的...
1. **Drools的作用** Drools的主要目标是将业务逻辑从应用程序代码中解耦,使业务规则能够独立于系统进行维护和更新。它能处理基于条件的决策,比如贷款审批或电商折扣策略,避免频繁修改代码导致的系统迭代。 2. ...
【Drools入门手册】是关于规则引擎的介绍,Drools是一个开源的Java规则引擎,它被设计用于实现复杂的业务逻辑和决策自动化。规则引擎是一种软件系统,它允许业务规则与应用程序的其余部分分离,使得规则的修改和管理...
### Drools 入门指南知识点总结 #### 一、技术简介 **1. 技术简介** Drools是一款基于Java的开源业务规则管理系统(BRMS),它能够帮助开发者将复杂的业务逻辑规则从代码中分离出来,以独立的规则文件形式存储。...
Drools入门案例 Drools基础语法 规则属性 Drools高级语法 Spring整合Drools Spring Boot整合Drools WorkBench Drools实战 个人所得税计算器 信用卡申请 保险产品准入规则 规则引擎,全称为业务规则管理系统,英文名...
1. **Drools简介**:PPT会介绍Drools的历史、特点以及在企业应用中的价值。Drools支持基于DSL(领域特定语言)的规则定义,可以使用JUnit进行规则测试,并且与Java EE和Spring框架有良好的集成。 2. **规则的创建**...
Drools快速入门第二版.ppt
Drools5 的使用主要包括 Drools5 简介、HelloWorld 示例和 API 解析。Drools5 简介主要介绍 Drools5 的基本概念和架构。HelloWorld 示例展示了 Drools5 的基本使用方法。API 解析则详细介绍了 Drools5 的 API 接口...
后面通过搭建具体的项目并结合springboot框架联合使用Drools的相关知识包括决策表的使用,囊括一般项目中所需要的知识点,理论结合实际,让真正入门到熟练。本资源是...
Drools7相较于早期版本(如Drools5)进行了一系列重大更新和改进,包括API的调整、性能优化以及更丰富的功能。 1. **API更改**: 在Drools7中,很多API进行了重构以提高可维护性和易用性。例如,`KnowledgeBase`和...
1. **Drools简介** Drools 是基于Java的规则引擎,它实现了基于事件驱动的业务规则管理。它的核心是基于Rete算法,这是一种用于推理和知识表示的高效算法,特别适合处理大量规则的场景。 2. **Drools 6的新特性** ...
drools规则引擎和activity工作流结合的maven-Web项目,该项目基于请假流程。项目中实现了动态监控规则文件和工作流文件的变更,从而实现不停止服务器达到重新加载drl和bpmn文件的效果。
5. **声明(declare)**:可选,自定义数据类型。 6. **全局变量(global)**:可选,定义全局变量。 7. **规则(rule)**:每个规则以 `rule` 关键字开始,包括规则名称、条件(when)和动作(then)。 在给出的...
《Drools入门手册》是针对规则引擎Drools的学习资料,主要面向初学者,旨在帮助读者快速理解和掌握Drools的基本概念、功能以及实际应用。Drools是一款强大的Java规则引擎,它允许开发者在应用程序中嵌入业务规则,...
---02-Drools入门案例(开发实现_1).mp4 ---03-Drools入门案例(开发实现_2).mp4 ---04-Drools入门案例(开发实现_3).mp4 ---05-Drools入门案例(开发实现_4).mp4 ---06-Drools入门案例(小结_规则引擎构成)....
1. **Drools Expert**:这是 Drools 的核心组件,它是一个规则引擎,负责执行规则。通过 Drools Expert,开发者可以使用基于DSL(领域特定语言)的规则来编程,这些规则可以在运行时动态地改变,以适应业务需求的...