`

Drools6.4动态加载规则(模板的简单应用)

阅读更多
  1. package com.sample; import java.io.Serializable; public class Message implements Serializable{ public static final int HELLO = 0; public static final int GOODBYE = 1; private String message; private int status; public String getMessage() { return message; } public int getStatus() { return status; } public void setMessage(String message) { this.message = message; } public void setStatus(int status) { this.status = status; } }
  2. package com.sample; import java.io.Serializable; public class Message implements Serializable{ public static final int HELLO = 0; public static final int GOODBYE = 1; private String message; private int status; public String getMessage() { return message; } public int getStatus() { return status; } public void setMessage(String message) { this.message = message; } public void setStatus(int status) { this.status = status; } }
  3. public class DataProviderCompilerTest {
  4. public static void main(String[] args) {  
  5. ArrayList<String[]> rows = new ArrayList<String[]>();  
  6.        rows.add(new String[] { "1", "status == 0" });  
  7.  
  8.        MyDataProvider tdp = new MyDataProvider(rows);  
  9.        DataProviderCompiler converter = new DataProviderCompiler();
  10.        
  11.         String drl = converter.compile(tdp, "/rules/rule_template_1.drl");  
  12. ArrayList<String[]> rowss = new ArrayList<String[]>();  
  13. rowss.add(new String[] { "2", "status == 1" });  
  14.     tdp = new MyDataProvider(rowss);  
  15. String drl2 = converter.compile(tdp, "/rules/rule_template_2.drl");  
  16.        System.out.println(drl);  
  17.        System.out.println(drl2);  
  18.        
  19.        KieServices kieServices = KieServices.Factory.get();  
  20.        KieResources resources = kieServices.getResources();  
  21.        KieModuleModel kieModuleModel = kieServices.newKieModuleModel();//1  
  22.  
  23.        KieBaseModel baseModel = kieModuleModel.newKieBaseModel("FileSystemKBase").addPackage("rules");//2
  24.        baseModel.newKieSessionModel("FileSystemKSession");//3
  25.        KieFileSystem fileSystem = kieServices.newKieFileSystem();
  26.        String xml = kieModuleModel.toXML();  
  27.        System.out.println(xml);//4  
  28.        fileSystem.writeKModuleXML(xml);//5  
  29.        String path = DataProviderCompilerTest.class.getClass().getResource("/").getPath();  
  30.        fileSystem.write("src/main/resources/rules/rule1.drl", drl);  
  31.        fileSystem.write("src/main/resources/rules/rule2.drl", drl2);  
  32.        
  33.        KieBuilder kb = kieServices.newKieBuilder(fileSystem);  
  34.        kb.buildAll();//7  
  35.        
  36.        if (kb.getResults().hasMessages(Level.ERROR)) {  
  37.            throw new RuntimeException("Build Errors:\n" + kb.getResults().toString());  
  38.        }  
  39.        KieContainer kContainer = kieServices.newKieContainer(kieServices.getRepository().getDefaultReleaseId());  
  40.  
  41.        KieSession kSession = kContainer.newKieSession("FileSystemKSession");  
  42.  
  43.        Message message = new Message();  
  44.        message.setMessage("Hello World");  
  45.        message.setStatus(Message.GOODBYE);  
  46.  
  47.        kSession.insert(message);  
  48.        kSession.fireAllRules();  
  49.        kSession.dispose();  
  50.   //   updateDrl(kieServices,kieModuleModel,kb, baseModel, kContainer,fileSystem);
  51. //test();
  52. //test();
  53.     }
  54. }
分享到:
评论

相关推荐

    drools从字符串中动态加载规则

    ### Drools从字符串中动态加载规则 在使用Drools规则引擎时,...综上所述,通过从字符串中动态加载规则的方式,我们可以更加灵活高效地管理和使用Drools规则引擎,这对于需要快速迭代业务逻辑的应用场景来说尤为重要。

    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的灵活应用管理,构建高效、可维护的业务系统。在这个项目实例中,我们将深入探讨如何...

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

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

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

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

    drools动态生成规则文件

    drools动态生成规则文件是基于Java的业务规则管理系统,它允许开发者在运行时创建、修改和执行业务规则。 Drools是Red Hat JBoss BRMS(Business Rules Management System)的一部分,它提供了一种强大的规则引擎,...

    springboot+drools动态模板引擎

    标签“drools 动态模板”暗示了这个示例关注的是如何利用Drools进行动态规则管理,以及如何在SpringBoot环境中实现这一功能。通过这种方式,开发者可以快速响应业务变化,提高系统的可维护性和灵活性。 至于文件名`...

    Drools7 + Springboot2 动态更新规则

    通过结合这两者,我们可以构建一个灵活且可扩展的业务规则应用,其中规则可以从数据库(如MySQL)中动态加载,以实现业务逻辑的实时更新。 首先,我们需要理解Drools的核心概念。Drools提供了一个基于规则的推理...

    drools5 规则动态加载示例

    drools5提供了一种解决方案,允许我们在运行时动态地加载和应用新的或修改过的规则,极大地提高了灵活性。 动态加载规则的核心概念是Drools的KieSession,它是规则引擎的执行环境。通过创建一个KieSession实例,...

    基于drools7.9 动态更新rule

    Drools是一款强大的、开源的Java规则引擎,它允许开发者在运行时动态地修改业务规则,从而实现灵活的业务逻辑管理。Drools 7.9版本是其稳定的一个版本,提供了更高效的执行效率和丰富的API。本文将深入探讨如何利用...

    JAVA规则引擎JBOSS RULES(DROOLS 6.5) 动态规则

    例如,银行可能会根据市场条件实时调整贷款审批规则,而这些规则可以通过DROOLS与数据库的结合动态加载,而不需要重新部署整个应用。 为了实现动态规则,开发者需要设计一个系统,该系统能够从数据库中读取规则,...

    规则引擎Drools 之 springboot 集成、热加载

     如果对drools还不是特别熟悉的,可以看下 《规则引擎Drools 之 初识drools》这篇文章;  本文源码,github 传送门:https://github.com/vincent9309/drools:  系统架构如下: 二、项目目录结构 三、...

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

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

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

    Drools的核心功能是解析、验证和执行规则,使得业务决策能够在运行时动态调整,无需修改或重新部署应用程序。 Drools基于Java,兼容J2EE标准,可以无缝集成到企业级应用中。其主要特性包括: 1. **规则语言**:...

    Drools规则引擎使用demo

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

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

    * 规则可以动态修改和更新,不需要重新编译应用程序代码。 * 规则引擎可以实时地检查和执行规则,提高了应用程序的效率和可维护性。 Drools 规则引擎是一个非常有用的工具,可以帮助我们解决复杂的业务逻辑问题,...

    Drools 规则流的使用介绍

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

    流口水:使用drools实现规则模板引擎

    通过这种方式,Drools可以轻松地集成到Spring应用中,实现动态的规则模板引擎。它可以极大地提高业务逻辑的灵活性,使得规则的调整和维护变得简单易行。同时,由于Drools的强大功能,它还支持更复杂的逻辑,如决策表...

    workBench +SSM +drools+动态发布

    总结来说,“workBench + SSM + drools + 动态发布”方案是一种强大的技术组合,它利用kie-workBench的强大规则编辑能力,SSM的灵活Web应用框架,Drools的业务规则引擎,以及动态发布机制,实现了业务规则的高效管理...

Global site tag (gtag.js) - Google Analytics