java支持动态语言javascript
例子:
ScriptEngineManager manager = **new** ScriptEngineManager();ScriptEngine engine = manager.getEngineByName(**"JavaScript"**);String scriptText = **"function sum(a,b) {return a+b}"**;注册JavaScript求和函数脚本_ engine.eval(scriptText);Invocable invocable = (Invocable)engine;调用注册的javascript执行脚本_ Object result = invocable.invokeFunction(**"sum"**,100,201);System._out_.println(**"sum:"**+result);
虽然JVM支持很多脚本语言(javaScript,Jruby,jython等),但是都是需要相应的封装才能使用,想的比较笨重,因此SpEL就有了它发挥的余地。
SpEL的概述
SpEL表达式语言类似EL表达式,和其他的表达式相比,具有更加简洁,灵活的特点。SpEL不依赖Spring框架,可以独立使用,但是在基于Spring框架的基础上可以更好的使用。SpEL抽象了一个通用的表达式操作API,因此可以很好的于其他动态语言进行集成
要使用SpEL就需要导入依赖
org.springframework spring-expression ${expression.version}
例子:
ExpressionParser parser = new SpelExpressionParser(); Expression exp = parser.parseExpression("'hello'+' world'"); String message = (String)exp.getValue(); System.out.println(message);
执行结果是: hello world