表达式引擎预研

背景

最后业务有需求需要动态计算表达式,基于公式对某些值进行再加工计算。所以对表达式引擎进行一个简单的了解。
表达式引擎就是为了表达式的动态求值计算。
通常对于各个类库对比,我们需要看厂商、License、社区活跃度、优缺点等来判断其符合的使用场景,最终决定应该用哪个。
由于时间较紧,只做简单收集,在项目中本已使用AviatorScript的情况下就选择了它。

特性对比

AviatorScript Groovy SpEL QLExpress
Version 5.3.2 4.0.4 5.3.22 3.3.0
厂商 killme2008 Apache Spring alibaba
License GPL V3 Apache 2 License Apache License 2.0 Apache License 2.0
Language 基于Java 基于Java Java Java
优点 高性能
轻量级
Flat learning curve
Powerful features
Smooth Java integration
Domain-Specific Languages
Vibrant and rich ecosystem
Scripting and testing glue
线程安全
高性能
弱类型脚本语言
安全控制
代码精简

还有OGNLDroolsEasyRules

另外MVELIKExpression很久未更新,不列