类 BshScriptFactory
- java.lang.Object
- org.springframework.scripting.bsh.BshScriptFactory
- 所有已实现的接口:
Aware,BeanClassLoaderAware,ScriptFactory
public class BshScriptFactory extends Object implements ScriptFactory, BeanClassLoaderAware
ScriptFactoryimplementation for a BeanShell script.Typically used in combination with a
ScriptFactoryPostProcessor; see the latter's javadoc for a configuration example.- 从以下版本开始:
- 2.0
- 作者:
- Juergen Hoeller, Rob Harrop
- 另请参阅:
BshScriptUtils,ScriptFactoryPostProcessor
构造器概要
构造器 构造器 说明 BshScriptFactory(String scriptSourceLocator)Create a new BshScriptFactory for the given script source.BshScriptFactory(String scriptSourceLocator, Class<?>... scriptInterfaces)Create a new BshScriptFactory for the given script source.
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 ObjectgetScriptedObject(ScriptSource scriptSource, Class<?>... actualInterfaces)Load and parse the BeanShell script viaBshScriptUtils.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.StringgetScriptSourceLocator()Return a locator that points to the source of the script.booleanrequiresConfigInterface()BeanShell scripts do require a config interface.booleanrequiresScriptedObjectRefresh(ScriptSource scriptSource)Determine whether a refresh is required (e.g. through ScriptSource'sisModified()method).voidsetBeanClassLoader(ClassLoader classLoader)Callback that supplies the beanclass loaderto a bean instance.StringtoString()
构造器详细资料
BshScriptFactory
public BshScriptFactory(String scriptSourceLocator)
Create a new BshScriptFactory for the given script source.With this
BshScriptFactoryvariant, the script needs to declare a full class or return an actual instance of the scripted object.- 参数:
scriptSourceLocator- a locator that points to the source of the script. Interpreted by the post-processor that actually creates the script.
BshScriptFactory
public BshScriptFactory(String scriptSourceLocator, Class<?>... scriptInterfaces)
Create a new BshScriptFactory for the given script source.The script may either be a simple script that needs a corresponding proxy generated (implementing the specified interfaces), or declare a full class or return an actual instance of the scripted object (in which case the specified interfaces, if any, need to be implemented by that class/instance).
- 参数:
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 (may benull)
方法详细资料
setBeanClassLoader
public void setBeanClassLoader(ClassLoader classLoader)
从接口复制的说明:BeanClassLoaderAwareCallback that supplies the beanclass loaderto a bean instance.Invoked after the population of normal bean properties but before an initialization callback such as
InitializingBean'sInitializingBean.afterPropertiesSet()method or a custom init-method.- 指定者:
setBeanClassLoader在接口中BeanClassLoaderAware- 参数:
classLoader- the owning class loader; may benullin which case a defaultClassLoadermust be used, for example theClassLoaderobtained viaClassUtils.getDefaultClassLoader()
getScriptSourceLocator
public String getScriptSourceLocator()
从接口复制的说明:ScriptFactoryReturn 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
public Class<?>[] getScriptInterfaces()
从接口复制的说明:ScriptFactoryReturn the business interfaces that the script is supposed to implement.Can return
nullif 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()
BeanShell scripts do require a config interface.- 指定者:
requiresConfigInterface在接口中ScriptFactory- 返回:
- whether the script requires a generated config interface
- 另请参阅:
ScriptFactory.getScriptInterfaces()
getScriptedObject
public Object getScriptedObject(ScriptSource scriptSource, Class<?>... actualInterfaces) throws IOException, ScriptCompilationException
Load and parse the BeanShell script viaBshScriptUtils.- 指定者:
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- 另请参阅:
BshScriptUtils.createBshObject(String, Class[], ClassLoader)
getScriptedObjectType
public Class<?> getScriptedObjectType(ScriptSource scriptSource) throws IOException, ScriptCompilationException
从接口复制的说明:ScriptFactoryDetermine 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
nullif none could be determined - 抛出:
IOException- if script retrieval failedScriptCompilationException- if script compilation failed
requiresScriptedObjectRefresh
public boolean requiresScriptedObjectRefresh(ScriptSource scriptSource)
从接口复制的说明:ScriptFactoryDetermine 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()