`

Drools6.4简单应用之规则的优先级

阅读更多

1.salience

说明:指定规则的顺序,默认为0

demo:

 

package u51.test.student;

import u51.test.student.Student;



rule "student"
    salience -1
    no-loop
    when
        s:Student()
    then
        System.out.println("0.0.1");

end



rule "student-1"
    salience 1
    no-loop
    when
        s:Student()
    then
        System.out.println("0.0.2");
end


结果:会先输出0.0.1,在输出0.0.2

 

2.agenda-group

说明:议程组,可以为规则指定议程组,然后指定议程组的先后执行顺序
demo
规则文件:
package u51.test.person;


import u51.test.person.Person;



rule "test"
  agenda-group "test"
no-loop
     when
        p : Person()
     then
        System.out.println("1.0.1");
end




rule "test-1"
      agenda-group "test-1"
no-loop
     when
        p : Person()
     then
        System.out.println("1.0.2");
end
AgendaTest.java
/**
 * caicongyang.com Inc.
 * Copyright (c) 2004-2016 All Rights Reserved.
 */
package com.caicongyang.drools.drools;

import org.kie.api.KieServices;
import org.kie.api.runtime.KieContainer;
import org.kie.api.runtime.KieSession;
import org.kie.api.runtime.rule.Agenda;

import u51.test.person.Person;

/**
 * Agenda group test case:优先执行的规则
 * @author caicongyang1
 * @version id: Test, v 0.1 16/10/18 上午11:41 caicongyang1 Exp $$
 */
public class AgendaTest {

    static KieSession getSession() {
        KieServices ks = KieServices.Factory.get();
        KieContainer kc = ks.getKieClasspathContainer();
        return kc.newKieSession("personKiesession");
    }

    public static void main(String[] args) {

        KieSession kSession = getSession();
        Agenda agenda = kSession.getAgenda();
        agenda.getAgendaGroup("test").setFocus();
        agenda.getAgendaGroup("test-1").setFocus();
        Person fact = new Person();
        kSession.insert(fact);
        kSession.fireAllRules();
        kSession.dispose();

    }
}
执行结果:
 

 

 

 

 

 


分享到:
评论

相关推荐

    kie drools6.4 web规则引擎tomcat7配置

    kie drools 6.4是Red Hat公司的业务规则管理系统(BRMS)的一部分,它提供了一个强大的规则引擎,用于处理和执行基于规则的应用程序。在这个配置过程中,我们将关注如何在Windows 10环境下设置kie drools的web应用,...

    drools6.4+spring集成

    drools6.4+spring集成是一项将业务规则引擎Drools与Spring框架相结合的技术实践,旨在利用Drools的强大规则处理能力,结合Spring的灵活应用管理,构建高效、可维护的业务系统。在这个项目实例中,我们将深入探讨如何...

    基于Spring + Drools6.4规则引擎代码实例.

    通过上述步骤,我们可以看到Spring + Drools 6.4规则引擎的集成与应用是非常直观和灵活的。这种方式不仅能够极大地提高代码的可读性和可维护性,还能够根据业务需求的变化快速调整规则,提高了整个系统的灵活性和...

    Drools规则执行顺序

    1. **规则优先级**:Drools 允许为每个规则指定一个优先级,优先级高的规则会先于优先级低的规则执行。这可以通过在规则定义中使用 `salience` 属性来设置。例如: ```java rule "HighPriorityRule" salience 100...

    drools整合apollo实现动态规则引擎

    drools整合apollo实现动态规则引擎,可以在不停服的情况下动态调整规则。无需数据库等存储,自动推送

    Drools7 + Springboot2 动态更新规则

    在实际应用中,我们还需要设计一个业务接口,以便业务逻辑代码可以与Drools规则交互。通过注入Drools服务类,业务组件可以创建Fact(业务对象),然后将Fact放入KieSession的工作内存中。Drools会自动匹配并执行与...

    Drools规则引擎从入门到精通

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

    drools动态生成规则文件

    drools支持事件驱动编程模型,可以监听特定的事件并根据事件动态生成和应用规则。例如,当系统检测到某种业务事件时,可以生成相应的规则并立即执行。 六、优化与性能 为了提高性能,drools提供了优化选项,如并行...

    Drools规则引擎使用demo

    Drools是一款强大的规则引擎,由Red ...通过这个"Drools规则引擎使用demo",你可以学习如何配置、加载规则,以及如何在Java应用程序中使用Drools进行规则的执行和事实的管理。这将为你构建智能决策系统提供坚实的基础。

    Drools 规则流的使用介绍

    这篇文章将深入探讨Drools如何实现规则流,以及如何在实际项目中有效应用。 ### 一、Drools 概述 Drools 是 JBoss 社区的一部分,由Red Hat公司支持。它主要由三个组件构成:Drools Core(核心规则引擎)、Drools ...

    规则引擎Drools.NET移植版

    **规则引擎Drools.NET移植版** Drools是一款强大的业务规则管理系统,源自Java社区,以其灵活、高效和可扩展的特性而广受赞誉。它允许开发者将业务逻辑以规则的形式编写,使得业务规则可以独立于应用程序代码进行...

    Drools规则引擎手册.zip

    首先,Drools的基础是基于规则的推理系统,它采用领域特定语言(DSL)来编写规则,这些规则可以是简单的条件语句或复杂的逻辑表达式。DSL的使用使得业务专家无需深入编程即可理解和维护规则,大大提高了业务规则管理...

    Drools规则引擎样例系统

    Drools采用了一个称为"声明式业务规则"的方法,允许开发者通过简单的语句来描述业务规则,而不是编写复杂的条件分支和逻辑判断。这些规则可以被组织成规则集(Rule Set),并以Drools规则语言(DRL)的形式编写。DRL...

    规则引擎Drools在J2EE项目开发中的应用

    在J2EE项目开发中,规则引擎Drools扮演着重要的角色,它是一个开源的业务规则管理系统(BRMS),能够帮助开发者将业务规则从应用程序逻辑中分离出来,从而实现更灵活、可维护的代码结构。Drools的核心功能是解析、...

    Drools 规则引擎的介绍及应用

    ### Drools规则引擎的介绍及应用 #### 一、规则引擎概述 规则引擎是一种软件系统,用于执行基于预定义规则的决策逻辑。这些规则通常表示为业务规则,旨在模拟人类专家在解决特定问题时所遵循的逻辑过程。规则引擎...

    Drools开发教程、规则引擎.pdf

    Drools是一个基于Java的业务规则管理系统(BRMS),它提供了强大的业务规则引擎,允许开发者通过定义业务规则来实现业务逻辑的动态变更,而无需改变代码。Drools5是该系统的其中一个版本,它在开发、运行和调试环境...

    Drools开发最全中文版技术指南

    Drools在JBoss应用服务器中作为规则引擎存在,并且是专门为Java语言定制的,基于CharlesForgy的RETE算法的实现。 RETE算法是专家系统领域内用于推理的一种高效算法,它能够高效地处理具有大量规则的系统。Drools...

    drools文档教程-规则引擎文档

    下面是 Drools 规则引擎在在线申请信用卡业务场景中的应用。 问题引出现有一个在线申请信用卡的业务场景,用户需要录入个人信息,如姓名、性别、年龄、学历、电话、所在公司、职位、月收入、是否有房、是否有车、...

    springboot集成drools实现重新加载规则

    总结来说,Spring Boot与Drools的集成使得我们可以方便地在Java应用中管理复杂的业务规则,并通过KieScanner实现规则的动态重载,提高了系统的灵活性和可维护性。在实际项目中,这种方式可以帮助开发者快速响应业务...

Global site tag (gtag.js) - Google Analytics