目录
源码位置
https://github.com/chlInGithub/ruledispatcherhttps://github.com/chlInGithub/ruledispatcher
1. what
不像Drools,不是复杂的规则引擎,而是负责规则的编排和调度。它适用于常规业务系统,也适用于saas系统。它让开发者仅需要关注规则的业务逻辑。
2. 原理
2.1. 规则编排的维度
规则编排按照场景种类+应用种类+规则种类三个维度进行编排。
2.2. 规则调度的方式
从场景种类+应用种类维度进行调度,支持的规则执行方式:
- 具体规则种类
- 所有规则种类
- 命中一条规则即返回
- 兜底规则
- 规则优先级
2.3. Spring扩展点
BeanFactoryPostProcessor
2.4. 自定义注解
3. 图示
如图可以看出,零散的规则控制器,经过编排后,成为了组织清晰的结构,支持多种规则调度玩法。还可以看出,开发者仅需要关注规则控制器即可。
下图分为两个部分展示了调度流程: