solon-expression
<dependency>
<groupId>org.noear</groupId>
<artifactId>solon-expression</artifactId>
</dependency>
1、描述
(v3.1.1 后支持)基础扩展插件。为 Solon 提供了一套表达式通用接口。并内置 Solon Expression Language(简称,SnEL)“求值”表达式实现方案。纯 Java 代码实现,零依赖(可用于其它任何框架)。编译后为 40KB 多点儿。
- 运行后,内存比较省(与同类相比)
- 只作解析运行(没有编译,没有字节码。不会产生新的隐藏类)
解析后会形成一个表达式“树结构”。可做为中间 DSL,按需转换为其它表达式(比如 redis、milvus 的过滤表达式)
主要特点:
- 总会输出一个结果(“求值”表达式嘛)
- 通过上下文传递变量,只支持对上下文的变量求值(不支持
new Xxx()
) - 只能有一条表达式语句(即不能有
;
号) - 不支持控制运算(即不能有
if
、for
之类的),不能当脚本用。 - 对象字段、属性、方法调用。可多层嵌套,但只支持
public
(相对更安全些) - 支持模板表达式
如果有脚本需求,可用:Liquor!
2、学习与教程
此插件也可用于非 solon 生态(比如 springboot2, jfinal, vert.x 等)。具体开发学习,参考:《教程 / Solon Expression 开发》
3、简单示例
你好世界:
System.out.println(SnEL.eval("'hello world!'"));