大家好!我是Andy哥。作为有8年Java开发和2年微服务开发架构的开发者,很
高兴又到了学习分享时间。
技术交流可以加我个人微信:bruce521java,我们一起共同成长
一、什么是规则引擎呢?
规则引擎顾名思义就是执行一堆规则的执行器,那规则是什么呢?规则就是
一些限定条件。比如说超市搞活动买满80元送三十优惠券,充话费冲五十送
五块钱。现在java领域比较成熟规则引擎有drools,urule, easy-rule,
qlExpress(阿里出品),出于业务需要和学习成本,这里我选择easy-rule
二、为什么要用规则引擎?
很多时候我们写代码会把业务代码和规则条件写在一起,后期版本迭代越来
越快。更改和调整变动不那么方便,最主要的事业务代码会变得越来越负责
很多的代码分支会让你陷入if-else无底黑洞。最难过的你改动了规则可能还
需要更改代码重新发布服务器,而且业务规则针对不同的产品需要做任意的
组合。比如说产品a 需要校验用户收入和职业规则, 产品b需要校验用户收
入和固定资产,有了规则引擎就可以很好的把多个规则组织起来实现更加
复杂的需求。
三、怎么在项目中使用规则引擎?
比如我的项目是springboot框架基于maven构建
在pom.xml 加入依赖库
<!--easy rules核心库-->
<dependency>
<groupId>org.jeasy</groupId>
<artifactId>easy-rules-core</artifactId>
<version>4.1.0</version>
</dependency>
<!--规则定义文件格式,支持json,yaml等-->
<dependency>
<groupId>org.jeasy</groupId>
<artifactId>easy-rules-support</artifactId>
<version>4.1.0</version>
</dependency>
<!--支持mvel规则语法库-->
<dependency>
<groupId>org.jeasy</groupId>
<artifactId>easy-rules-mvel</artifactId>
<version>4.1.0</version>
</dependency>
加上配置就可以直接开撸,是不是很简单。官方的也给出了例子
官方给出的实例链接贴出来了如下:
https://github.com/j-easy/easy-rules/tree/master/easy-rules-tutorials
出于篇幅和个人水平限制不在详说
再次感谢你们阅读Andy哥的文档,我们一起做更好的自己