规则引擎让你代码更易维护

大家好!我是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哥的文档,我们一起做更好的自己



©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容