Solon v3.3.0

solon-expression

</> markdown
<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()
  • 只能有一条表达式语句(即不能有 ; 号)
  • 不支持控制运算(即不能有 iffor 之类的),不能当脚本用。
  • 对象字段、属性、方法调用。可多层嵌套,但只支持 public(相对更安全些)
  • 支持模板表达式

如果有脚本需求,可用:Liquor!

2、学习与教程

此插件也可用于非 solon 生态(比如 springboot2, jfinal, vert.x 等)。具体开发学习,参考:《教程 / Solon Expression 开发》

3、简单示例

你好世界:

System.out.println(SnEL.eval("'hello world!'"));