例子: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就有了它发挥的余地。java
SpEL表达式语言相似EL表达式,和其余的表达式相比,具备更加简洁,灵活的特色。SpEL不依赖Spring框架,能够独立使用,可是在基于Spring框架的基础上能够更好的使用。SpEL抽象了一个通用的表达式操做API,所以能够很好的于其余动态语言进行集成spring
要使用SpEL就须要导入依赖express
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> <version>${expression.version}</version> </dependency>
例子:ruby
ExpressionParser parser = new SpelExpressionParser(); Expression exp = parser.parseExpression("'hello'+' world'"); String message = (String)exp.getValue(); System.out.println(message);
执行结果是: hello world框架