zoukankan      html  css  js  c++  java
  • Drools的HelloWord例子

    添加drools框架运行的依赖

    <!--Drools 规则相关 -->
            <dependency>
                <groupId>org.drools</groupId>
                <artifactId>drools-core</artifactId>
                <version>6.5.0.Final</version>
            </dependency>
    
            <dependency>
                <groupId>org.kie</groupId>
                <artifactId>kie-api</artifactId>
                <version>6.5.0.Final</version>
            </dependency>
    
            <dependency>
                <groupId>org.drools</groupId>
                <artifactId>drools-compiler</artifactId>
                <version>6.5.0.Final</version>
            </dependency>
    public class DroolsHelloWorld {
        public static void main(String[] args) {
            // Class.forName( "org.drools.compiler.kie.builder.impl.KieServicesImpl" ).newInstance()
            KieServices kieServices = KieServices.Factory.get();
            //会去 resource/META-INF 下找 kmodule.xml 文件
            KieContainer kieContainer = kieServices.getKieClasspathContainer();
            // kmodule.xml中<ksession name="helloworld"/> name值   
            KieSession kieSession = kieContainer.newKieSession("helloworld");
            //启用规则
            Set set=new HashSet();  
            set.add("helloworld1");  
            set.add("helloworld2");   
            int a = kieSession.fireAllRules();
            /*FactHandle factHandle2 = kieSession.insert("456");
            int b = kieSession.fireAllRules(new RuleNameEndsWithAgendaFilter("helloWorld1"));
            kieSession.delete(factHandle2);*/
            kieSession.dispose();
        }
    }

    META-INF/kmodule.xml文件

    <?xml version="1.0" encoding="UTF-8"?>
    <kmodule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns="http://www.drools.org/xsd/kmodule">
        
        <!-- packages 指向规则文件目录 -->
        <kbase name="hello" packages="com.dinpay.drools.helloworld">
            <!-- name在 创建 KIEsession 会用到 -->
            <ksession name="helloworld"/>
        </kbase>
        
        <!-- packages 指向规则文件目录   -->
        <kbase name="helloUpgraded" packages="com.dinpay.drools.helloworldUpgraded">
            <ksession name="helloworldUpgraded"/>
        </kbase>
        
            <!-- packages 指向规则文件目录   -->
        <kbase name="dinpay" packages="rule2">
            <ksession name="dinpayRule"/>
        </kbase>
    </kmodule>

    droolsHelloWorld.drl脚本编写

    rule helloWorld2
        salience 100
        lock-on-active true
        when
            eval(true)
        then
          System.out.println("Helloworld drools2!  ");
    end
    
    rule helloWorld1
        salience 100
        lock-on-active true
        when
            eval(true)
        then
            
          System.out.println("Helloworld drools1!  ");
    end
  • 相关阅读:
    服务器控件Repeater
    HeidiSQL无法连接Myql
    未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序搜索
    DISTINCT删除重复数据
    Makedown文件保存问题
    Makedown 本地图片问题
    vsftpd配置文件详解[转载]
    centos 本地yum源的搭建
    OpenOffice菜单乱码解决和linux下安装字体
    让secureCRT正确显示中文
  • 原文地址:https://www.cnblogs.com/atomicbomb/p/7171475.html
Copyright © 2011-2022 走看看