比较老牌了,很强大,但是好久没更新了
参考地址:
http://mvel.documentnode.com/
https://github.com/mvel/mvel
可以使用java 自带的ScriptEngine,基于此我们可以使用多种语言的实现,但是8之后就被移除了。。。
多语言引擎,可以集成ruby,js,python,groovy,kotlin。。。。,总之很强大
表达式语言,标准,灵活
http://commons.apache.org/proper/commons-jexl/
参考使用
import org.apache.commons.jexl.Expression;
import org.apache.commons.jexl.ExpressionFactory;
import org.apache.commons.jexl.JexlContext;
import org.apache.commons.jexl.JexlHelper;
?
Opera opera = new Opera( );
opera.setName("The Magic Flute");
opera.setComposer("Mozart");
opera.setYear(1791);
?
String expr =
"${opera.name} was composed by ${opera.composer} in " +
"${opera.year}.";
?
Expression e = ExpressionFactory.createExpression( expr );
JexlContext jc = JexlHelper.createContext( );
jc.getVars( ).put("opera", opera);
String message = (String) e.evaluate(jc);
?
System.out.println( message );
参考使用
public class Data {
private String name; // getter and setter omitted
}
?
Data data = new Data();
data.setName("John Doe");
?
ExpressionParser p = new SpelExpressionParser();
Expression e = p.parseExpression("name == ‘John Doe‘");
Boolean r = (Boolean) e.getValue(data); // will return true
?
e = p.parseExpression("Hello " + name + ", how are you ?");
String text = e.getValue(data, String.class); //
参考地址
https://jcp.org/en/jsr/detail?id=341
比较强大,而且一直在更新
一款简洁够用,小巧的表达式包,文档网上有,但是代码,目前少维护了
参考地址
https://github.com/beanshell/beanshell
模版引擎,实际上也可以作为表达式引擎来使用,而且比较多,Velocity,FreeMarker,stringtemplate4
https://docs.spring.io/spring/docs/current/spring-framework-reference/core.html#expressions
https://beanshell.github.io/
原文:https://www.cnblogs.com/rongfengliang/p/11863669.html