最近用到了规则引擎 ,简单做一个总结。 规则,说白了,就是,现状(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 设计_规则引擎设计相关推荐

  1. java闹钟程序设计_JAVA课程设计_闹钟的设计与实现项目-报告_附源代码.doc

    JAVA课程设计_闹钟的设计与实现项目-报告_附源代码 第2章 MACROBUTTON AcceptAllChangesInDoc [双击此处键入1级标题] PAGE 2 - PAGE 1 - .. ...

  2. flex如何做响应式设计_响应式设计-您做错了!

    flex如何做响应式设计 Responsive design is not just about the web that automatically adjusts to different scr ...

  3. ddd领域驱动设计_领域驱动设计(DDD)理论启示

    过去几年通天塔一直处于快速的业务能力建设和架构完善的阶段,以应对不断增长的业务需求和容量.高可用等技术需求,现在通天塔平台已经能满足集团主站的大部分活动.频道搭建和运营能力,主流程的新需求越来越少,个 ...

  4. 小型蘑菇定向切片机设计_鲜枣去核机的设计_玉米脱粒机的设计_振动式马铃薯收获机的设计_谷物干燥机的设计_锤片式饲料粉碎机的设计_山楂去核机的设计_萝卜切丝机设计_板栗去皮机设计_锤式破碎机设计……

    棉花打包机的设计[说明书(论文)+CAD+solidworks] 毕业设计_气动四自由度机械手结构设计(设计说明书+CAD图纸)    套类零件自动上下料机构 玉米脱粒机的设计(说明书+cad图纸+p ...

  5. dcdc模块降额设计_模块电源应用设计的可靠性和注意事项

    我们在选择电源上,常常把重心放在参数与性能上,容易忽视这是通用型设计.电源模块本身的可靠性很重要,但事实上,由于电源系统工作环境的复杂性,如果没有可靠的系统应用设计,电源最终会失效.下面介绍电源系统应 ...

  6. 动态网站的制作与设计_动态网站设计要注意那些细节

    细节部分如页面的访问速度,客户的使用反馈和交流,内容的更新等都对于用户来说能够起到不小的作用.客户在浏览网页时,很少会进入需要等候的网页,在网络上的三秒的等候时间都显得久了.网站在进行设计时应该留有用 ...

  7. 壁行式起重机设计_玉米播种机的设计_残疾人轮椅设计_破冰除雪机设计_单转子可逆式锤式破碎机设计_全液压升降机设计_振动压路机振动轮设计_旋转型灌装机设计_搬运机械手及其控制系统设计……

    组合机床主轴箱及夹具设计(论文+DWG图纸) 机械毕业设计-玉米播种机的设计(开题报告+任务书+说明书+CAD图纸+答辩PPT) 机械毕业设计-残疾人轮椅设计(含全套CAD图纸)    残疾人轮椅的设 ...

  8. java适配器模式_适配器模式的设计,你get到了吗?

    作者:rabbitwfly 假如我们又这样软件系统,我们希望它能够和一个新的库搭配使用,但是这个库所提供的接口与我们的软件系统不兼容,我们不想改变现有代码就能解决这个问题,怎么办?这个时候我们就需要将 ...

  9. java校院导游程序课程设计_数据结构课程设计之校园导游系统

    数据结构课程设计之校园导游系统 放假到现在终于安下心来要搞点学习了,现在对放假前一周的数据结构课设做一个总结,快放假的时候搞数据结构课设,当时满脑子都是期末考试忙着复习,根本没啥心思去做.所以课设一共 ...

最新文章

  1. 有关RDS上只读实例延时分析-同适用于自建MySQL主从延时分析判断
  2. 搜索旋转排序数组—leetcode31
  3. MongoDB搭建和简单操作(windows环境)
  4. B站这套教程火了,火速搬运!限时删除~
  5. 2020人工智能应用挑战赛前瞻 | 专家委员会强大阵容,震撼发布!
  6. jsp java循环读取json_JAVA JSON遍历问题,求解(内附代码)
  7. 科技守卫城市安全,智慧消防解决方案
  8. python中range和xrange的区别_ZH奶酪:Python中range和xrange的区别
  9. AppStore ipa (苹果内购)笔记
  10. 获取公司的maven库 和 idea maven 中Projects Settings的Libraries中正常,但是在Maven Projects中Dependencies一直出现红线的解决办法
  11. HDU1412 {A} + {B}【排序+集合合并】
  12. 在linux服务器上安装jdk
  13. html表格 超链接无效,excel表格超链接失效怎么处理
  14. 苹果直营店_请谨慎选择百邦苹果售后维修,亲身体验,倒不如直接去直营店呢...
  15. python下载网站视频_【python爬虫实战】批量下载网站视频
  16. Aras innovator: innovator大家族
  17. SylixOS QT配置
  18. 雷柏V500s和V500的win键无效
  19. 【VUE】vue网站设计-----字节招聘网站设计
  20. java处理解析xml文件的几种方法及每种方法的区别

热门文章

  1. 面试题——————不可变类String类
  2. 仓库管理存在的问题及改进对策?
  3. 位地址和字节地址换算_修改飞机24位地址码
  4. 反馈式神经网络之HNN
  5. 平衡二叉树-AVL树(LL、RR、LR、RL旋转)
  6. 计算机软件硬件系统,计算机硬件系统和软件系统
  7. 2018年度中国电池行业百强企业名单发布
  8. 3D模型欣赏:中国神话中的龙子睚眦的人形诠释
  9. sql server与mysql日期格式转换和获取当前日期区分
  10. 深入解析分布式数据库的 SQL 引擎优化