一、概述。JSR94标准
在本文中,我们将介绍一些最流行的Java规则引擎。
在应用程序中,业务规则很复杂(比如:优惠券的使用规则)。如果用源代码实现这些规则,很繁琐。通过规则引擎将业务逻辑与源代码分离,可以简化开发和维护。
在Java世界中,大多数规则引擎库都实现了称为Java Rule API Engine的 JSR94标准。
二、常用的规则引擎。
1、Drools
Drools的官网:https://www.drools.org/
Drools是业务规则管理系统(BRMS)解决方案。Drools可以与jBPM集成,jBPM是一个业务流程管理工具,用于流程,事件活动,任务等的标准化。如果你想阅读更多内容,可以在这里找到Drools的介绍,以及一篇关于与Spring集成的文章。
2、OpenL Tablets
官网:http://openl-tablets.org/
OpenL Tablets是一个业务规则管理系统和一个基于Excel决策表的业务规则引擎。由于此框架使用的表格格式对业务用户来说很熟悉,因此它弥合了业务用户和开发人员之间的差距。
3. Easy Rules
官网:http://www.jeasy.org/
Easy Rules是一个简单的Java规则引擎,提供轻量级和基于POJO的框架来定义业务。它可以通过使用复合模式从原始规则创建复杂规则。
与最传统的规则引擎相比,此框架不使用XML文件或任何域特定语言文件来将规则与应用程序隔离。它使用基于注释的类和方法将业务逻辑注入应用程序。
Easy Rules可以方便开发人员使用与应用程序本身完全分离的业务逻辑来创建和维护应用程序。另一方面,由于此框架未实现JSR94标准,因此业务逻辑必须直接编码为Java代码。
4、RuleBook
RuleBook是一个Java框架,它利用Java 8 lambdas和责任链模式来使用简单的BDD方法定义规则。
与大多数规则引擎一样,RuleBook使用“Facts” 的概念,即提供给规则的数据。RuleBook允许规则修改Facts的状态,然后可以通过链中的规则读取和修改。对于读取一种类型的数据(Facts)并输出不同类型的结果的规则,RuleBook具有Decisions。
RuleBook可以使用Java DSL与Spring集成。