例子: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框架