`

drools5入门(1)

 
阅读更多

安装drools5插件

 

直接解压drools-5.0-eclipse-all.zipeclipse下的 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

 

创建一个UserPOJO类:

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

 

 

 

 

分享到:
评论

相关推荐

    drools6入门例子

    《 Drools 6 入门指南:从零开始探索规则引擎的世界》 Drools 是一个强大、开源的业务规则管理系统(BRMS),它提供了一种高效、灵活的方式来编写、测试和执行业务规则。在本篇文章中,我们将深入探讨 Drools 6 的...

    Drools规则引擎从入门到精通

    1. **Drools的作用** Drools的主要目标是将业务逻辑从应用程序代码中解耦,使业务规则能够独立于系统进行维护和更新。它能处理基于条件的决策,比如贷款审批或电商折扣策略,避免频繁修改代码导致的系统迭代。 2. ...

    Drools入门手册.ppt

    【Drools入门手册】是关于规则引擎的介绍,Drools是一个开源的Java规则引擎,它被设计用于实现复杂的业务逻辑和决策自动化。规则引擎是一种软件系统,它允许业务规则与应用程序的其余部分分离,使得规则的修改和管理...

    drools入门指南(基于drools6.2).pdf

    ### Drools 入门指南知识点总结 #### 一、技术简介 **1. 技术简介** Drools是一款基于Java的开源业务规则管理系统(BRMS),它能够帮助开发者将复杂的业务逻辑规则从代码中分离出来,以独立的规则文件形式存储。...

    规则引擎Drools入门实战案例

    Drools入门案例 Drools基础语法 规则属性 Drools高级语法 Spring整合Drools Spring Boot整合Drools WorkBench Drools实战 个人所得税计算器 信用卡申请 保险产品准入规则 规则引擎,全称为业务规则管理系统,英文名...

    Drools 10分钟入门 代码 PPT

    1. **Drools简介**:PPT会介绍Drools的历史、特点以及在企业应用中的价值。Drools支持基于DSL(领域特定语言)的规则定义,可以使用JUnit进行规则测试,并且与Java EE和Spring框架有良好的集成。 2. **规则的创建**...

    Drools快速入门第二版.ppt

    Drools快速入门第二版.ppt

    Drools_规则引擎详解

    Drools5 的使用主要包括 Drools5 简介、HelloWorld 示例和 API 解析。Drools5 简介主要介绍 Drools5 的基本概念和架构。HelloWorld 示例展示了 Drools5 的基本使用方法。API 解析则详细介绍了 Drools5 的 API 接口...

    Drools规则引擎从入门到精通源码

    后面通过搭建具体的项目并结合springboot框架联合使用Drools的相关知识包括决策表的使用,囊括一般项目中所需要的知识点,理论结合实际,让真正入门到熟练。本资源是...

    Drools7 demo

    Drools7相较于早期版本(如Drools5)进行了一系列重大更新和改进,包括API的调整、性能优化以及更丰富的功能。 1. **API更改**: 在Drools7中,很多API进行了重构以提高可维护性和易用性。例如,`KnowledgeBase`和...

    drools6学习例子

    1. **Drools简介** Drools 是基于Java的规则引擎,它实现了基于事件驱动的业务规则管理。它的核心是基于Rete算法,这是一种用于推理和知识表示的高效算法,特别适合处理大量规则的场景。 2. **Drools 6的新特性** ...

    drools+activity入门

    drools规则引擎和activity工作流结合的maven-Web项目,该项目基于请假流程。项目中实现了动态监控规则文件和工作流文件的变更,从而实现不停止服务器达到重新加载drl和bpmn文件的效果。

    drools的简单入门案例.doc

    5. **声明(declare)**:可选,自定义数据类型。 6. **全局变量(global)**:可选,定义全局变量。 7. **规则(rule)**:每个规则以 `rule` 关键字开始,包括规则名称、条件(when)和动作(then)。 在给出的...

    Drools入门手册

    《Drools入门手册》是针对规则引擎Drools的学习资料,主要面向初学者,旨在帮助读者快速理解和掌握Drools的基本概念、功能以及实际应用。Drools是一款强大的Java规则引擎,它允许开发者在应用程序中嵌入业务规则,...

    Drools 业务规则管理系统 BRMS

    ---02-Drools入门案例(开发实现_1).mp4 ---03-Drools入门案例(开发实现_2).mp4 ---04-Drools入门案例(开发实现_3).mp4 ---05-Drools入门案例(开发实现_4).mp4 ---06-Drools入门案例(小结_规则引擎构成)....

    Drools入门-环境搭建,分析及示例.docx

    1. **Drools Expert**:这是 Drools 的核心组件,它是一个规则引擎,负责执行规则。通过 Drools Expert,开发者可以使用基于DSL(领域特定语言)的规则来编程,这些规则可以在运行时动态地改变,以适应业务需求的...

Global site tag (gtag.js) - Google Analytics