Drools动态规则

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013115157/article/details/80095623

动态规则,是做规则引擎最想知道的问题,小编也加过一些群,大部分的人都喜欢问这样的问题。

  • 规则只能写在文件里嘛

  • 规则引擎能做什么

  • 规则可动态配置嘛

  • 在项目中使用规则引擎,业务人员怎么用呢?

  • 规则变化了怎样才能不重启项目就能用呢

  • ......总是一脸懵逼的在研究着...


小编今天就给大家分析说明一下:

首先规则可以写法有很多,像规则决策表就是写在Excel中的,规则文件,重点是还可以以字符串的方式编写,聪明的读者是不是有写到什么了?

问题1:规则只能写在文件里嘛?

扫描二维码关注公众号,回复: 3882949 查看本文章

回答:那肯定是不会的。如何证明呢:请看如下代码:

    

@Test

    public void  ruleDaseTestString() throws Exception {

        String myRule = "package rules rule \"Hello World 2\" when eval(true) then System.out.println(\"Test, Drools!\"); end";

        System.out.println(myRule);

        KieHelper helper = new KieHelper();

        helper.addContent(myRule, ResourceType.DRL);

        KieSession ksession = helper.build().newKieSession();

        int i = ksession.fireAllRules();

        ksession.dispose();        

    }


问题二:规则引擎能做什么?

回答:规则引擎有强大的业务代码分离功能,对项目中,不变的业务,可变的业务,经常变化的业务进行统一管理。

问题三:规则可动态配置嘛

回答:答案很明显,我们可以通过以下7种方式对规则进行编辑进行动态变化

  1. 拼接规则语法,形成完成的规则内容,通过string方式调用规则

  2. 通过模板方式对规则进行修改

  3. workbench自动扫描

  4. workbench整合kie-server

  5. 通过执行规则文件执行规则

  6. 动态创建kjar

  7. 官方提供的方式

问题四:在项目中使用规则引擎,业务人员怎么用呢?

回答:看完前三个问题,我们大致有一个方向了,但总结起来就两大类:

  1. 通过Drools自带的workbench

  2. 通过拼接字符串方式实现页面的定制化。

动态规则核心是变化规则库中的规则,那什么是规则库呢,小编下次带着您一块解读Drools规则库的内部。前四个问题小编大致说明了一下,相信第五个问题读者已然明了,小编就不多说了


    有的读者就会问小编了。动态规则实现有两大类,实现方式大致有7种,那这7种都有什么呢,小编你不给说说啊,哈哈, 那小编就来简单的说一说呗:


方式1:通过string方式调用规则

在回答问题1时,小编已经将这种方式的代码写到上面了


方式2:通过规则模板

规则模板


方式3:workbench自动扫描

自动扫描


方式4:workbench整合kie-server

https://blog.csdn.net/u013115157/article/details/52785142

https://blog.csdn.net/u013115157/article/details/52486803


方式5:通过执行规则文件执行规则

https://blog.csdn.net/u013115157/article/details/52487001


方式6与方式7内容比较多



----请看下方↓↓↓↓↓↓↓

百度搜索 Drools从入门到精通:可下载开源全套Drools教程

深度Drools教程不段更新中:


更多Drools实战陆续发布中………

微信公众号 ↓↓↓↓↓↓↓↓↓↓


猜你喜欢

转载自blog.csdn.net/u013115157/article/details/80095623