- <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">1.为Eclipse配置Drools工具及环境搭建参考:http://blog.sina.com.cn/s/blog_4da7b8a90102vm45.html </span>
2.环境搭建完毕后即可建立一个实际的Drools与maven结合的实例。
(1)建立一个maven项目:
按照上图的步骤建立一个maven项目
(2)在pom.xml文件中引入依赖包
打开如图所示配置文件输入如下配置数据
- <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>com.sample</groupId>
- <artifactId>Drools-test</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <name>Drools :: Sample Maven Project</name>
- <description>A sample Drools Maven project</description>
- <properties>
- <runtime.version>6.4.0.Final</runtime.version>
- </properties>
- <repositories>
- <repository>
- <id>jboss-public-repository-group</id>
- <name>JBoss Public Repository Group</name>
- <url>http://repository.jboss.org/nexus/content/groups/public/</url>
- <releases>
- <enabled>true</enabled>
- <updatePolicy>never</updatePolicy>
- </releases>
- <snapshots>
- <enabled>true</enabled>
- <updatePolicy>daily</updatePolicy>
- </snapshots>
- </repository>
- </repositories>
- <dependencies>
- <dependency>
- <groupId>org.kie</groupId>
- <artifactId>kie-api</artifactId>
- <version>${runtime.version}</version>
- </dependency>
- <dependency>
- <groupId>org.kie</groupId>
- <artifactId>kie-spring</artifactId>
- <version>${runtime.version}</version>
- </dependency>
- <dependency>
- <groupId>org.drools</groupId>
- <artifactId>drools-core</artifactId>
- <version>${runtime.version}</version>
- </dependency>
- <dependency>
- <groupId>org.drools</groupId>
- <artifactId>drools-decisiontables</artifactId>
- <version>${runtime.version}</version>
- </dependency>
- <dependency>
- <groupId>org.jbpm</groupId>
- <artifactId>jbpm-test</artifactId>
- <version>${runtime.version}</version>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-nop</artifactId>
- <version>1.7.6</version>
- </dependency>
- </dependencies>
- </project>
(3)如下图所示建立文件夹和包结构
(4)在META-INF中建立kmodule.xml 内容如下
- <span style="font-family: Arial, Helvetica, sans-serif;"> <?xml version="1.0" encoding="UTF-8"?> </span>
- <kmodule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns="http://jboss.org/kie/6.0.0/kmodule">
- <kbase name="HelloWorldKB" packages="rules">
- <ksession name="HelloWorldKS"/>
- </kbase>
- </kmodule>
- <pre name="code" class="html"><pre name="code" class="html"><span style="font-size: 14px;">(5)在rules文件夹中建立helloWorld.drl 内容如下:</span></pre>
- <pre></pre>
- <span style="font-size:14px; font-family:Arial,Helvetica,sans-serif"></span>
- <pre></pre>
- <pre name="code" class="html" style="font-size: 14px;"><pre name="code" class="html"> <?xml version="1.0" encoding="UTF-8"?>
- <kmodule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns="http://jboss.org/kie/6.0.0/kmodule">
- <kbase name="HelloWorldKB" packages="rules">
- <ksession name="HelloWorldKS"/>
- </kbase>
- </kmodule></pre><pre name="code" class="html"> (6)建立实体类Message.java</pre><pre name="code" class="html"> 内容如下:<span style="font-family: Arial, Helvetica, sans-serif;">package com.sample;</span><pre name="code" class="java"><span style="white-space:pre"> </span>public class Message
- <span style="white-space:pre"> </span>{
- //常量 HELLO 值0
- public static final int HELLO = 0;
- //常量 GOODBYE 值0
- public static final int GOODBYE = 1;
- //消息
- private String message;
- //状态
- private int status;
- public String getMessage() {
- return this.message;
- }
- public void setMessage(String message) {
- this.message = message;
- }
- public int getStatus() {
- return this.status;
- }
- public void setStatus(int status) {
- this.status = status;
- }
- }</pre><pre name="code" class="java"> (7)建立测试类HelloWorldExample.java <span style="font-family: Arial, Helvetica, sans-serif;"> 内容如下:</span></pre><pre name="code" class="java"> <pre name="code" class="java"><span style="white-space:pre"> </span>package com.sample;
- <span style="white-space:pre"> </span>import org.kie.api.KieServices;
- <span style="white-space:pre"> </span>import org.kie.api.runtime.KieContainer;
- <span style="white-space:pre"> </span>import org.kie.api.runtime.KieSession;
- <span style="white-space:pre"> </span>public class HelloWorldExample
- <span style="white-space:pre"> </span>{
- <span style="white-space:pre"> </span> public static final void main(final String[] args) {
- <span style="white-space:pre"> </span>KieServices ks = KieServices.Factory.get();
- <span style="white-space:pre"> </span>KieContainer kc = ks.getKieClasspathContainer();
- <span style="white-space:pre"> </span>KieSession ksession = kc.newKieSession("HelloWorldKS");
- <span style="white-space:pre"> </span>final Message message = new Message();
- <span style="white-space:pre"> </span>message.setMessage( "Hello World" );
- <span style="white-space:pre"> </span> <span style="white-space:pre"> </span>message.setStatus( Message.HELLO );
- <span style="white-space:pre"> </span> <span style="white-space:pre"> </span>ksession.insert(message);
- <span style="white-space:pre"> </span> <span style="white-space:pre"> </span>ksession.fireAllRules();
- <span style="white-space:pre"> </span>ksession.dispose();
- <span style="white-space:pre"> </span> }
- }
- </pre> 运行测试类结果如下:<img src="https://img-blog.csdn.net/20161114085247640?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
- <pre></pre>
- <pre></pre>
- <pre></pre>
- <p></p>
- <pre></pre>
- <pre name="code" class="java"></pre><pre name="code" class="java"> 此实例所实现的功能比较简单,就是对message当中的status字段进行判断从而进行不同的操作。<img src="https://img-blog.csdn.net/20161114085403888?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">在文章中出现的如上图所示的标签,为生成博客时自动产生的,在java文件及配置文件中请自动忽略。</pre><pre name="code" class="java"></pre><pre name="code" class="java"></pre>
- <pre></pre>
- <pre></pre>
- <p></p>
- <pre></pre>
- <pre></pre>
- <pre></pre>
- <pre></pre>
- <pre></pre>
- </pre></pre></pre></pre>