类 StandardScriptFactory
- java.lang.Object
- org.springframework.scripting.support.StandardScriptFactory
- 所有已实现的接口:
Aware
,BeanClassLoaderAware
,ScriptFactory
public class StandardScriptFactory extends Object implements ScriptFactory, BeanClassLoaderAware
ScriptFactory
implementation based on the JSR-223 script engine abstraction (as included in Java 6+). Supports JavaScript, Groovy, JRuby, and other JSR-223 compliant engines.Typically used in combination with a
ScriptFactoryPostProcessor
; see the latter's javadoc for a configuration example.- 从以下版本开始:
- 4.2
- 作者:
- Juergen Hoeller
- 另请参阅:
ScriptFactoryPostProcessor
构造器概要
构造器 构造器 说明 StandardScriptFactory(String scriptSourceLocator)
Create a new StandardScriptFactory for the given script source.StandardScriptFactory(String scriptSourceLocator, Class<?>... scriptInterfaces)
Create a new StandardScriptFactory for the given script source.StandardScriptFactory(String scriptEngineName, String scriptSourceLocator)
Create a new StandardScriptFactory for the given script source.StandardScriptFactory(String scriptEngineName, String scriptSourceLocator, Class<?>... scriptInterfaces)
Create a new StandardScriptFactory for the given script source.
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 protected Object
adaptToInterfaces(Object script, ScriptSource scriptSource, Class<?>... actualInterfaces)
protected Object
evaluateScript(ScriptSource scriptSource)
Object
getScriptedObject(ScriptSource scriptSource, Class<?>... actualInterfaces)
Load and parse the script via JSR-223's ScriptEngine.Class<?>
getScriptedObjectType(ScriptSource scriptSource)
Determine the type of the scripted Java object.Class<?>[]
getScriptInterfaces()
Return the business interfaces that the script is supposed to implement.String
getScriptSourceLocator()
Return a locator that points to the source of the script.boolean
requiresConfigInterface()
Return whether the script requires a config interface to be generated for it.boolean
requiresScriptedObjectRefresh(ScriptSource scriptSource)
Determine whether a refresh is required (e.g. through ScriptSource'sisModified()
method).protected ScriptEngine
retrieveScriptEngine(ScriptSource scriptSource)
void
setBeanClassLoader(ClassLoader classLoader)
Callback that supplies the beanclass loader
to a bean instance.String
toString()
构造器详细资料
StandardScriptFactory
public StandardScriptFactory(String scriptSourceLocator)
Create a new StandardScriptFactory for the given script source.- 参数:
scriptSourceLocator
- a locator that points to the source of the script. Interpreted by the post-processor that actually creates the script.
StandardScriptFactory
public StandardScriptFactory(String scriptSourceLocator, Class<?>... scriptInterfaces)
Create a new StandardScriptFactory for the given script source.- 参数:
scriptSourceLocator
- a locator that points to the source of the script. Interpreted by the post-processor that actually creates the script.scriptInterfaces
- the Java interfaces that the scripted object is supposed to implement
StandardScriptFactory
public StandardScriptFactory(String scriptEngineName, String scriptSourceLocator)
Create a new StandardScriptFactory for the given script source.- 参数:
scriptEngineName
- the name of the JSR-223 ScriptEngine to use (explicitly given instead of inferred from the script source)scriptSourceLocator
- a locator that points to the source of the script. Interpreted by the post-processor that actually creates the script.
StandardScriptFactory
public StandardScriptFactory(@Nullable String scriptEngineName, String scriptSourceLocator, @Nullable Class<?>... scriptInterfaces)
Create a new StandardScriptFactory for the given script source.- 参数:
scriptEngineName
- the name of the JSR-223 ScriptEngine to use (explicitly given instead of inferred from the script source)scriptSourceLocator
- a locator that points to the source of the script. Interpreted by the post-processor that actually creates the script.scriptInterfaces
- the Java interfaces that the scripted object is supposed to implement
方法详细资料
setBeanClassLoader
public void setBeanClassLoader(ClassLoader classLoader)
从接口复制的说明: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.- 指定者:
setBeanClassLoader
在接口中BeanClassLoaderAware
- 参数:
classLoader
- the owning class loader
getScriptSourceLocator
public String getScriptSourceLocator()
从接口复制的说明:ScriptFactory
Return a locator that points to the source of the script. Interpreted by the post-processor that actually creates the script.Typical supported locators are Spring resource locations (such as "file:C:/myScript.bsh" or "classpath:myPackage/myScript.bsh") and inline scripts ("inline:myScriptText...").
- 指定者:
getScriptSourceLocator
在接口中ScriptFactory
- 返回:
- the script source locator
- 另请参阅:
ScriptFactoryPostProcessor.convertToScriptSource(java.lang.String, java.lang.String, org.springframework.core.io.ResourceLoader)
,ResourceLoader
getScriptInterfaces
@Nullable public Class<?>[] getScriptInterfaces()
从接口复制的说明:ScriptFactory
Return the business interfaces that the script is supposed to implement.Can return
null
if the script itself determines its Java interfaces (such as in the case of Groovy).- 指定者:
getScriptInterfaces
在接口中ScriptFactory
- 返回:
- the interfaces for the script
requiresConfigInterface
public boolean requiresConfigInterface()
从接口复制的说明:ScriptFactory
Return whether the script requires a config interface to be generated for it. This is typically the case for scripts that do not determine Java signatures themselves, with no appropriate config interface specified ingetScriptInterfaces()
.- 指定者:
requiresConfigInterface
在接口中ScriptFactory
- 返回:
- whether the script requires a generated config interface
- 另请参阅:
ScriptFactory.getScriptInterfaces()
getScriptedObject
@Nullable public Object getScriptedObject(ScriptSource scriptSource, @Nullable Class<?>... actualInterfaces) throws IOException, ScriptCompilationException
Load and parse the script via JSR-223's ScriptEngine.- 指定者:
getScriptedObject
在接口中ScriptFactory
- 参数:
scriptSource
- the actual ScriptSource to retrieve the script source text from (nevernull
)actualInterfaces
- the actual interfaces to expose, including script interfaces as well as a generated config interface (if applicable; may benull
)- 返回:
- the scripted Java object
- 抛出:
IOException
- if script retrieval failedScriptCompilationException
- if script compilation failed
evaluateScript
protected Object evaluateScript(ScriptSource scriptSource)
retrieveScriptEngine
@Nullable protected ScriptEngine retrieveScriptEngine(ScriptSource scriptSource)
adaptToInterfaces
@Nullable protected Object adaptToInterfaces(@Nullable Object script, ScriptSource scriptSource, Class<?>... actualInterfaces)
getScriptedObjectType
@Nullable public Class<?> getScriptedObjectType(ScriptSource scriptSource) throws IOException, ScriptCompilationException
从接口复制的说明:ScriptFactory
Determine the type of the scripted Java object.Implementations are encouraged to cache script metadata such as a generated script class. Note that this method may be invoked concurrently and must be implemented in a thread-safe fashion.
- 指定者:
getScriptedObjectType
在接口中ScriptFactory
- 参数:
scriptSource
- the actual ScriptSource to retrieve the script source text from (nevernull
)- 返回:
- the type of the scripted Java object, or
null
if none could be determined - 抛出:
IOException
- if script retrieval failedScriptCompilationException
- if script compilation failed
requiresScriptedObjectRefresh
public boolean requiresScriptedObjectRefresh(ScriptSource scriptSource)
从接口复制的说明:ScriptFactory
Determine whether a refresh is required (e.g. through ScriptSource'sisModified()
method).- 指定者:
requiresScriptedObjectRefresh
在接口中ScriptFactory
- 参数:
scriptSource
- the actual ScriptSource to retrieve the script source text from (nevernull
)- 返回:
- whether a fresh
ScriptFactory.getScriptedObject(org.springframework.scripting.ScriptSource, java.lang.Class<?>...)
call is required - 另请参阅:
ScriptSource.isModified()