代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Java
】
DDDlib对规则引擎Drools的封装
作者:
大雅堂zacker
/ 发布于
2013/3/18
/
700
企业应用的三大核心技术:流程引擎技术、规则引擎技术、复杂事件处理。
package com.dayatang.rule; import static org.junit.Assert.*; import java.util.Arrays; import java.util.Collection; import org.drools.KnowledgeBase; import org.drools.KnowledgeBaseFactory; import org.drools.builder.KnowledgeBuilder; import org.drools.builder.KnowledgeBuilderFactory; import org.drools.builder.ResourceType; import org.drools.definition.KnowledgePackage; import org.drools.io.ResourceFactory; import org.drools.runtime.StatefulKnowledgeSession; import org.drools.runtime.StatelessKnowledgeSession; import org.junit.Before; import org.junit.Test; import com.dayatang.rule.examples.Person; public class DroolsTest { private String ruleDrl = "/Person.drl"; private Person chencao; private Person xishi; private Person yyang; @Before public void setUp() { chencao = new Person(1L, "chencao", "male"); xishi = new Person(2L, "xishi", "female"); yyang = new Person(3L, "yyang", "male"); } @Test public void stateless() throws Exception { // Execute rule StatelessKnowledgeSession session = createStatelessKnowledgeSession(); session.execute(Arrays.asList(chencao, xishi, yyang)); // Validate assertEquals(60, chencao.getRetireAge()); assertEquals(55, xishi.getRetireAge()); assertEquals(60, yyang.getRetireAge()); // Release the resources } private StatelessKnowledgeSession createStatelessKnowledgeSession() { return createknowledgeBase().newStatelessKnowledgeSession(); } @Test public void stateful() throws Exception { // Execute rule StatefulKnowledgeSession session = createStatefulKnowledgeSession(); session.insert(chencao); session.insert(xishi); session.insert(yyang); session.fireAllRules(); // Validate assertEquals(60, chencao.getRetireAge()); assertEquals(55, xishi.getRetireAge()); assertEquals(60, yyang.getRetireAge()); // Release the resources session.dispose(); } private StatefulKnowledgeSession createStatefulKnowledgeSession() { return createknowledgeBase().newStatefulKnowledgeSession(); } private KnowledgeBase createknowledgeBase() { KnowledgeBase knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase(); Collection<KnowledgePackage> knowledgePackages = createKnowledgeBuilder().getKnowledgePackages(); knowledgeBase.addKnowledgePackages(knowledgePackages); return knowledgeBase; } private KnowledgeBuilder createKnowledgeBuilder() { KnowledgeBuilder knowledgeBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); knowledgeBuilder.add(ResourceFactory.newClassPathResource(ruleDrl, getClass()), ResourceType.DRL); if (knowledgeBuilder.hasErrors()) { System.err.println(knowledgeBuilder.getErrors().toString()); } return knowledgeBuilder; } } package org.drools.examples import com.dayatang.rule.examples.Person import com.dayatang.rule.examples.Helper global java.util.List list rule "male" dialect "mvel" when $p : Person( gender == "male" ) then System.out.println("rule 'male' is running...") $p.retireAge = 60 end rule "female" dialect "mvel" when $p : Person( gender == "female" ) then System.out.println("rule 'female' is running...") $p.retireAge = 55 end
试试其它关键字
DDDlib
同语言下
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
大雅堂zacker
贡献的其它代码
(
3
)
.
jQuery的一款微相册插件
.
DDDlib对规则引擎Drools的封装
.
时间工具类
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3