规则引擎 java 设计_规则引擎设计
最近用到了规则引擎 ,简单做一个总结。 规则,说白了,就是,现状(fact)怎么样,如果(condition)怎么样,那么(action)怎么样. 规则引擎使用了rete算法,我这边使用的是drools, 总之归绕一个核心,生成drl文件,其他的都有drools来执行。
为了方便设计,对业务进行了统一的封装OP(入参:param,实体:body,出参:res),执行器Exector,这样就可以少引入class。 一个标签表,一个规则引擎表。 标签里有各种数据,变量,实例变量,关系运算,指令。
条件直接生成
行为
sql填充:把sql给规则引擎。sql是可以带参数的,使用的是变量库里的参数。
$op.setBody
{
"$op.setBody": " select lock_on_active from t_rule_engine where id='${id}' "
}
查询数组:查询sql,得到数组。
Executor.sqlList($op);
{"Executor.sqlList ($op);":""},
查询数值:查询sql得到数字
Executor.sqlLong($op);
{"Executor. sqlLong($op);":""},
查询map:查询sql得到map
Executor.sqlMap($op);
{"Executor. sqlMap($op);":""},
查询字符:查询sql得到字符串。
Executor.sqlStr($op);
{"Executor. sqlStr($op);":""},
触发规则:重新在规则文件里执行。
update($op);
{"update($op);":""},
变量copy:把执行的结果放到入参当条件。
Executor.paramCopy
{"Executor.paramCopy":["data","data1"]} //把查询结果data的值,赋值到参数里data1
变量赋值:把一个常量值赋值给变量,这个常量,也可以是实例变量库里的值。
Executor.let
{"Executor.let":["data","cheitemContent"]} //把 data 赋值给参里里的 cheitemContent
目前,只有“sql填充”、“变量copy”是有参之外,其他都是无参动作。
最终生成规则文件drl
规则引擎 java 设计_规则引擎设计相关推荐
- java闹钟程序设计_JAVA课程设计_闹钟的设计与实现项目-报告_附源代码.doc
JAVA课程设计_闹钟的设计与实现项目-报告_附源代码 第2章 MACROBUTTON AcceptAllChangesInDoc [双击此处键入1级标题] PAGE 2 - PAGE 1 - .. ...
- flex如何做响应式设计_响应式设计-您做错了!
flex如何做响应式设计 Responsive design is not just about the web that automatically adjusts to different scr ...
- ddd领域驱动设计_领域驱动设计(DDD)理论启示
过去几年通天塔一直处于快速的业务能力建设和架构完善的阶段,以应对不断增长的业务需求和容量.高可用等技术需求,现在通天塔平台已经能满足集团主站的大部分活动.频道搭建和运营能力,主流程的新需求越来越少,个 ...
- 小型蘑菇定向切片机设计_鲜枣去核机的设计_玉米脱粒机的设计_振动式马铃薯收获机的设计_谷物干燥机的设计_锤片式饲料粉碎机的设计_山楂去核机的设计_萝卜切丝机设计_板栗去皮机设计_锤式破碎机设计……
棉花打包机的设计[说明书(论文)+CAD+solidworks] 毕业设计_气动四自由度机械手结构设计(设计说明书+CAD图纸) 套类零件自动上下料机构 玉米脱粒机的设计(说明书+cad图纸+p ...
- dcdc模块降额设计_模块电源应用设计的可靠性和注意事项
我们在选择电源上,常常把重心放在参数与性能上,容易忽视这是通用型设计.电源模块本身的可靠性很重要,但事实上,由于电源系统工作环境的复杂性,如果没有可靠的系统应用设计,电源最终会失效.下面介绍电源系统应 ...
- 动态网站的制作与设计_动态网站设计要注意那些细节
细节部分如页面的访问速度,客户的使用反馈和交流,内容的更新等都对于用户来说能够起到不小的作用.客户在浏览网页时,很少会进入需要等候的网页,在网络上的三秒的等候时间都显得久了.网站在进行设计时应该留有用 ...
- 壁行式起重机设计_玉米播种机的设计_残疾人轮椅设计_破冰除雪机设计_单转子可逆式锤式破碎机设计_全液压升降机设计_振动压路机振动轮设计_旋转型灌装机设计_搬运机械手及其控制系统设计……
组合机床主轴箱及夹具设计(论文+DWG图纸) 机械毕业设计-玉米播种机的设计(开题报告+任务书+说明书+CAD图纸+答辩PPT) 机械毕业设计-残疾人轮椅设计(含全套CAD图纸) 残疾人轮椅的设 ...
- java适配器模式_适配器模式的设计,你get到了吗?
作者:rabbitwfly 假如我们又这样软件系统,我们希望它能够和一个新的库搭配使用,但是这个库所提供的接口与我们的软件系统不兼容,我们不想改变现有代码就能解决这个问题,怎么办?这个时候我们就需要将 ...
- java校院导游程序课程设计_数据结构课程设计之校园导游系统
数据结构课程设计之校园导游系统 放假到现在终于安下心来要搞点学习了,现在对放假前一周的数据结构课设做一个总结,快放假的时候搞数据结构课设,当时满脑子都是期末考试忙着复习,根本没啥心思去做.所以课设一共 ...
最新文章
- 有关RDS上只读实例延时分析-同适用于自建MySQL主从延时分析判断
- 搜索旋转排序数组—leetcode31
- MongoDB搭建和简单操作(windows环境)
- B站这套教程火了,火速搬运!限时删除~
- 2020人工智能应用挑战赛前瞻 | 专家委员会强大阵容,震撼发布!
- jsp java循环读取json_JAVA JSON遍历问题,求解(内附代码)
- 科技守卫城市安全,智慧消防解决方案
- python中range和xrange的区别_ZH奶酪:Python中range和xrange的区别
- AppStore ipa (苹果内购)笔记
- 获取公司的maven库 和 idea maven 中Projects Settings的Libraries中正常,但是在Maven Projects中Dependencies一直出现红线的解决办法
- HDU1412 {A} + {B}【排序+集合合并】
- 在linux服务器上安装jdk
- html表格 超链接无效,excel表格超链接失效怎么处理
- 苹果直营店_请谨慎选择百邦苹果售后维修,亲身体验,倒不如直接去直营店呢...
- python下载网站视频_【python爬虫实战】批量下载网站视频
- Aras innovator: innovator大家族
- SylixOS QT配置
- 雷柏V500s和V500的win键无效
- 【VUE】vue网站设计-----字节招聘网站设计
- java处理解析xml文件的几种方法及每种方法的区别