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