Drools是什么?做什么的?
我先用一个案例来说明:
QQ欢乐斗地主 每日签到领奖励:
如果第一天的奖励,后面在我增加奖励的时候,我怎么把奖励又分给对应的签到天数上面去呢。
1、用代码来控制,代码里面写很多 if-else
1 | if(第一天签到){ |
如果这样的话,我需要修改的时候,就需要进行重新发布。能不能进行动态更新呢。
2、你可以把规则和代码进行隔离,就避免了第一种问题。
每次要签到的时候,都读取一下规则,如果规则改变,那么签到的逻辑也进行改变。
最重要的是什么,这个规则的变化,是业务人员驱动的。
这个规则库,如果业务人员可以根据自己的需求来调整,来修改,岂不美哉!
(可能业务觉得,斗地主第一天不应该送 300 豆,应该送 1000豆。)
小结:说了那么多,其实就是 Drools 就是做这个的,应该 规则引擎框架。
Drools 的使用,引入 maven 依赖,使用它们的 api 来执行调用规则即可。
规则写在哪里呢?可以写在本地,或者可以写在数据库。
Drools 可以读取到这些内容,来进行加载,匹配,再执行。
视频感悟
物流,个人所得税
1 | rule “随便定义,字符串就行” |