`
raymond.chen
  • 浏览: 1418809 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Drools6使用范例

    博客分类:
  • Java
 
阅读更多

1、创建kmodule.xml文件

        在src\main\resources目录下新建名为META-INF的文件夹,在文件夹内新建名为kmodule.xml的文件,文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule">
	<!-- packages值要与src\main\resources目录下rules文件夹名一致  -->
	<kbase name="rules" packages="rules">
		<ksession name="demo-ksession-rules" />
	</kbase>
</kmodule>

 

2、创建drl规则文件

        在src\main\resources目录下新建名为rules的文件夹,名称必须要与src\main\resources\kmodule.xml文件中的packages属性值一致。在文件夹内新建名为demo_rules.drl的规则文件,文件内容如下:

 

package com.seasy.drools.test
//包名可以随意指定

//导入规则文件需要使用到的外部类或类的静态方法
import com.seasy.repeater.vo.HeaderVo;
//不循环执行规则
no-loop true

rule "responseHeader"
	//优先级,数值越大越先执行
	salience 100
	
    when
        vo : HeaderVo(msgId!="")
    then
    	System.out.println("message id is: " + vo.getMsgId());
    	System.out.println("message type is: " + vo.getMsgType());
    	
    	double tmp = 5000 / 4.5;
    	System.out.println("tmp = " + tmp);
    	
    	if("1001".equals(vo.getMsgType())) {
    		vo.setResultCode("0000");
    		vo.setResultCodeMsg("success");
        } else {
    		vo.setResultCode("0001");
    		vo.setResultCodeMsg("error");
        }
        
        System.out.println("result code: " + vo.getResultCode());
end

 

 

3、pom.xml文件依赖包

<dependency>
	<groupId>org.drools</groupId>
	<artifactId>drools-core</artifactId>
	<version>6.3.0.Final</version>
</dependency>

<dependency>
	<groupId>org.drools</groupId>
	<artifactId>drools-compiler</artifactId>
	<version>6.3.0.Final</version>
</dependency>

<dependency>
	<groupId>org.kie</groupId>
	<artifactId>kie-internal</artifactId>
	<version>6.3.0.Final</version>
</dependency>

<dependency>
	<groupId>org.kie</groupId>
	<artifactId>kie-api</artifactId>
	<version>6.3.0.Final</version>
</dependency>

 

4、编写java代码

//通过KieServices来获取各种对象来完成规则构建、管理和执行等操作
KieServices kieService = KieServices.Factory.get();

//KieContainer是KieBase的容器,KieBase是一个知识仓库,包含规则、方法等
KieContainer kieContainer = kieService.getKieClasspathContainer();

//KIE默认读取src/main/resources/META-INF/kmodule.xml文件,并生成KieSession
KieSession kieSession = kieContainer.newKieSession("demo-ksession-rules");

HeaderVo vo = new HeaderVo();
vo.setMsgId(StringUtil.getUUID());
//vo.setMsgType("1001");

//将事实(Fact)插入到引擎
kieSession.insert(vo);

//通知规则引擎执行规则
kieSession.fireAllRules();

System.out.println("result code: " + vo.getResultCode());
System.out.println("result code message: " + vo.getResultCodeMsg());

 

5、输出结果

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
message id is: 82175a5d41f643aeb453b13e32fd1f58
message type is: null
tmp = 1111.111111111111
result code: 0001
result code: 0001
result code message: error

 

分享到:
评论

相关推荐

    Drools6 和 Drools7技术指南-中文文档.zip

    Drools开发最全中文版技术指南。 Drools开发最全中文版技术指南,介绍了常见的drools如何进行开发,注意是:中文版中文版中文版! drools 中文文档 规则引擎 drools6 drools7 Java

    drools6的demo

    drools6的demo

    drools使用excel实例

    规则引擎一般是一下情况使用 1.为提高效率,管理流程必须自动化,即使现代商业规则异常复杂。 2.市场要求业务规则经常变化,IT系统必须依据业务规则的变化快速、低成本的更新。 3.为了快速、低成本的更新,业务人员...

    drools drools drools drools drools

    drools drools drools drools drools

    drools calendar 使用demo

    drools calendar 使用demo

    Drools6-笔记

    适合初学者 学习drools

    drools安装与配置

    drools

    drools 6 Official document

    english drools 6 Official document

    Drools V6.x 开发文档

    Drools最新版本6.x的详细开发文档

    drools的使用.pdf

    drools的使用说明,包含示例和自定义规则

    规则引擎Drools使用手册(中文)

    规则引擎Drools使用手册(中文),对于学习和研究Drools技术很有帮助的~~

    Drools4.0使用手册中文

    jboss的Drools规则引擎使用说明

    drools使用的jar包

    drools使用的jar包,运行官方drools-distribution-7.7.0.Final drools使用的jar包,运行官方drools-distribution-7.7.0.Final drools使用的jar包,运行官方drools-distribution-7.7.0.Final drools使用的jar包,运行...

    drools6学习例子

    很不错的drools6学习的例子 里面有入门的实例及一些语法的例子。

    drools 6 英文文档

    drools6 官方英文文档。找不到中文版,先凑合看吧。

    drools6开发文档

    drools6开发文档技术文档新手可以研究学习下

    规则引擎Drools 中文使用教程

    Drools中文使用教程 Drools(JBoss Rules )具有一个易于访问企业策略、易于调整以及易于管理的开源业务规则引擎,符合业内标准,速度快、效率高。业务分析师或审核人员可以利用它轻松查看业务规则,从而检验是否已...

    drools使用语法

    drools5.0使用帮助文档,包括规则调用的库,类 ,接口,方法

    Drools4中文使用手册

    Drools是一个Java语言版本的基于Charles...对于其它实现,Drools通过使用Schema定义XML提供Declarative Programming和足够程度的扩展性来匹配其它领域的编程语言。领域标准语言(DSLs)包含XML元素和属性来描述问题域。

    Drools规则引擎从入门到精通

    9 Drools WorkBench使用9.1 WorkBench基本使用9.2 创建会话9.3 编译并部署9.4 执行代码10 Drools决策表入门11 Drools决策表加强12 Drools决策表整合Springboot和MybatiesPlus13 动态编译Class文件实现Drools规则调用...

Global site tag (gtag.js) - Google Analytics