Class StandardScriptEvaluator
java.lang.Object
org.springframework.scripting.support.StandardScriptEvaluator
- All Implemented Interfaces:
Aware
,BeanClassLoaderAware
,ScriptEvaluator
public class StandardScriptEvaluator
extends Object
implements ScriptEvaluator, BeanClassLoaderAware
javax.script
(JSR-223) based implementation of Spring's ScriptEvaluator
strategy interface.- Since:
- 4.0
- Author:
- Juergen Hoeller, Costin Leau
- See Also:
-
Constructor Summary
ConstructorDescriptionConstruct a newStandardScriptEvaluator
.StandardScriptEvaluator
(ClassLoader classLoader) Construct a newStandardScriptEvaluator
for the given class loader.StandardScriptEvaluator
(ScriptEngineManager scriptEngineManager) Construct a newStandardScriptEvaluator
for the given JSR-223ScriptEngineManager
to obtain script engines from. -
Method Summary
Modifier and TypeMethodDescriptionevaluate
(ScriptSource script) Evaluate the given script.evaluate
(ScriptSource script, Map<String, Object> argumentBindings) Evaluate the given script with the given arguments.protected ScriptEngine
getScriptEngine
(ScriptSource script) Obtain the JSR-223 ScriptEngine to use for the given script.void
setBeanClassLoader
(ClassLoader classLoader) Callback that supplies the beanclass loader
to a bean instance.void
setEngineName
(String engineName) Set the name of the script engine for evaluating the scripts (e.g.void
setGlobalBindings
(Map<String, Object> globalBindings) Set the globally scoped bindings on the underlying script engine manager, shared by all scripts, as an alternative to script argument bindings.void
setLanguage
(String language) Set the name of the language meant for evaluating the scripts (e.g.
-
Constructor Details
-
StandardScriptEvaluator
public StandardScriptEvaluator()Construct a newStandardScriptEvaluator
. -
StandardScriptEvaluator
Construct a newStandardScriptEvaluator
for the given class loader.- Parameters:
classLoader
- the class loader to use for script engine detection
-
StandardScriptEvaluator
Construct a newStandardScriptEvaluator
for the given JSR-223ScriptEngineManager
to obtain script engines from.- Parameters:
scriptEngineManager
- the ScriptEngineManager (or subclass thereof) to use- Since:
- 4.2.2
-
-
Method Details
-
setLanguage
Set the name of the language meant for evaluating the scripts (e.g. "Groovy").This is effectively an alias for
"engineName"
, potentially (but not yet) providing common abbreviations for certain languages beyond what the JSR-223 script engine factory exposes.- See Also:
-
setEngineName
Set the name of the script engine for evaluating the scripts (e.g. "Groovy"), as exposed by the JSR-223 script engine factory.- Since:
- 4.2.2
- See Also:
-
setGlobalBindings
Set the globally scoped bindings on the underlying script engine manager, shared by all scripts, as an alternative to script argument bindings.- Since:
- 4.2.2
- See Also:
-
setBeanClassLoader
Description copied from interface:BeanClassLoaderAware
Callback that supplies the beanclass loader
to a bean instance.Invoked after the population of normal bean properties but before an initialization callback such as
InitializingBean's
InitializingBean.afterPropertiesSet()
method or a custom init-method.- Specified by:
setBeanClassLoader
in interfaceBeanClassLoaderAware
- Parameters:
classLoader
- the owning class loader
-
evaluate
Description copied from interface:ScriptEvaluator
Evaluate the given script.- Specified by:
evaluate
in interfaceScriptEvaluator
- Parameters:
script
- the ScriptSource for the script to evaluate- Returns:
- the return value of the script, if any
-
evaluate
@Nullable public Object evaluate(ScriptSource script, @Nullable Map<String, Object> argumentBindings) Description copied from interface:ScriptEvaluator
Evaluate the given script with the given arguments.- Specified by:
evaluate
in interfaceScriptEvaluator
- Parameters:
script
- the ScriptSource for the script to evaluateargumentBindings
- the key-value pairs to expose to the script, typically as script variables (may benull
or empty)- Returns:
- the return value of the script, if any
-
getScriptEngine
Obtain the JSR-223 ScriptEngine to use for the given script.- Parameters:
script
- the script to evaluate- Returns:
- the ScriptEngine (never
null
)
-