Java 表达式引擎

        企业的需求往往是多样化且复杂的,对接不同企业时会有不同的定制化的业务模型和流程。我们在业务系统中使用表达式引擎,集中配置管理业务规则,并实现实时决策和计算,可以提高系统的灵活性和响应能力。

        引入规则引擎似乎就能解决这个问题,规则引擎的一个好处就是可以使业务规则和业务代码分离,从而降低维护难度。

       几种常见表达式引擎: AviatorScript 、MVEL 、OGNL 、SpEL 、QLExpress 、JEXL 、JUEL 。

ik-expression

IK Expression 是一个开源的(OpenSource),可扩展的(Extensible),基于 java 语言开发的一个超轻量级(Super lightweight)的公式化语言解析执行工具包。2009 年 2 月发布第一个版本,2009 年 10 月发布最后一个版本后再没有新版本发布,所以没有纳入此次选型。

JSEL

JSEL 是一个兼容 JavaScript 运算规则的简单的表达式解释引擎,你可以通过 Map 接口,或者 JavaBean 给出一个变量集合,能后通过表达式从这个集合中抽取变量,再通过表达式逻辑生成你需要的数据。2009 年发布第一个版本,2011 年发布最后一个版本后未再更新,所以没有纳入此次选型。

此外还有其他规则引擎 Drools, urule, easy-rules 。相对比较成熟完善的脚本语言如 Groovy 也不参与选型比较。

参考资料
[1] QLExpress:https://github.com/alibaba/QLExpress
[2] AviatorScript:https://github.com/killme2008/aviatorscript
[3] MVEL:https://github.com/mvel/mvel
[4] OGNL:https://github.com/orphan-oss/ognl
[5] SpEl:https://github.com/spring-projects/spring-framework

[6] Janino:https://github.com/janino-compiler/janino

[7] JUEL:https://github.com/beckchr/juel

[8] JEXL:https://github.com/apache/commons-jexl

[9] Fel:https://github.com/dbcxy/fast-el

[10] ik-expression:https://code.google.com/archive/p/ik-expression/

[11] JSEL:https://code.google.com/archive/p/lite/wikis/JSEL.wiki

[1] JMH:https://www.cnblogs.com/wupeixuan/p/13091381.html

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值