public class GroovyScriptFactory extends java.lang.Object implements ScriptFactory, BeanFactoryAware, BeanClassLoaderAware
ScriptFactory 実装。 通常、ScriptFactoryPostProcessor と組み合わせて使用されます。設定例については、後者の javadoc を参照してください。
メモ: Spring 4.0 は Groovy 1.8 以降をサポートしています。
GroovyClassLoader, ScriptFactoryPostProcessor| コンストラクターと説明 |
|---|
GroovyScriptFactory(java.lang.String scriptSourceLocator) 指定されたスクリプトソースの新しい GroovyScriptFactory を作成します。 |
GroovyScriptFactory(java.lang.String scriptSourceLocator, org.codehaus.groovy.control.customizers.CompilationCustomizer... compilationCustomizers) 基になる GroovyClassLoader 内の Groovy のコンパイルプロセスをカスタマイズできる戦略インターフェースを指定して、指定されたスクリプトソースの新しい GroovyScriptFactory を作成します。 |
GroovyScriptFactory(java.lang.String scriptSourceLocator, org.codehaus.groovy.control.CompilerConfiguration compilerConfiguration) 指定されたスクリプトソースの新しい GroovyScriptFactory を作成します。カスタム MetaClass を作成して不足しているメソッドを提供したり、オブジェクトの動作を変更したりできるストラテジーインターフェースを指定します。 |
GroovyScriptFactory(java.lang.String scriptSourceLocator, GroovyObjectCustomizer groovyObjectCustomizer) 指定されたスクリプトソースの新しい GroovyScriptFactory を作成します。カスタム MetaClass を作成して不足しているメソッドを提供したり、オブジェクトの動作を変更したりできるストラテジーインターフェースを指定します。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
protected groovy.lang.GroovyClassLoader | buildGroovyClassLoader(java.lang.ClassLoader classLoader) 指定された ClassLoader の GroovyClassLoader を構築します。 |
protected java.lang.Object | executeScript(ScriptSource scriptSource, java.lang.Class<?> scriptClass) 指定された Groovy スクリプトクラスをインスタンス化し、必要に応じて実行します。 |
groovy.lang.GroovyClassLoader | getGroovyClassLoader() このスクリプトファクトリで使用される GroovyClassLoader を返します。 |
java.lang.Object | getScriptedObject(ScriptSource scriptSource, java.lang.Class<?>... actualInterfaces)GroovyClassLoader を介して Groovy スクリプトをロードして解析します。 |
java.lang.Class<?> | getScriptedObjectType(ScriptSource scriptSource) スクリプト Java オブジェクトの型を判別します。 |
java.lang.Class<?>[] | getScriptInterfaces()Groovy スクリプトはインターフェース自体を決定するため、ここでインターフェースを明示的に公開する必要はありません。 |
java.lang.String | getScriptSourceLocator() スクリプトのソースを指すロケーターを返します。 |
boolean | requiresConfigInterface()Groovy スクリプトは、setter を public メソッドとして公開するため、構成インターフェースは必要ありません。 |
boolean | requiresScriptedObjectRefresh(ScriptSource scriptSource) リフレッシュが必要かどうかを判断します(例: |
void | setBeanClassLoader(java.lang.ClassLoader classLoader)Bean class loader を Bean インスタンスに提供するコールバック。 |
void | setBeanFactory(BeanFactory beanFactory) 所有ファクトリを Bean インスタンスに提供するコールバック。 |
java.lang.String | toString() |
public GroovyScriptFactory(java.lang.String scriptSourceLocator)
Groovy スクリプトはその Java インターフェース自体を定義するため、ここではスクリプトインターフェースを指定する必要はありません。
scriptSourceLocator - スクリプトのソースを指すロケーター。実際にスクリプトを作成するポストプロセッサーによって解釈されます。public GroovyScriptFactory(java.lang.String scriptSourceLocator,
@Nullable
GroovyObjectCustomizer groovyObjectCustomizer)scriptSourceLocator - スクリプトのソースを指すロケーター。実際にスクリプトを作成するポストプロセッサーによって解釈されます。groovyObjectCustomizer - カスタムメタクラスを設定したり、このファクトリによって作成された GroovyObject にその他の変更を加えたりできるカスタマイザ (null の場合があります)GroovyObjectCustomizer.customize(groovy.lang.GroovyObject)public GroovyScriptFactory(java.lang.String scriptSourceLocator,
@Nullable
org.codehaus.groovy.control.CompilerConfiguration compilerConfiguration)scriptSourceLocator - スクリプトのソースを指すロケーター。実際にスクリプトを作成するポストプロセッサーによって解釈されます。compilerConfiguration - GroovyClassLoader に適用されるカスタムコンパイラー構成 (null の場合があります)GroovyClassLoader.GroovyClassLoader(ClassLoader, CompilerConfiguration)public GroovyScriptFactory(java.lang.String scriptSourceLocator,
org.codehaus.groovy.control.customizers.CompilationCustomizer... compilationCustomizers)scriptSourceLocator - スクリプトのソースを指すロケーター。実際にスクリプトを作成するポストプロセッサーによって解釈されます。compilationCustomizers - GroovyClassLoader コンパイラー構成に適用される 1 つ以上のカスタマイザ CompilerConfiguration.addCompilationCustomizers(org.codehaus.groovy.control.customizers.CompilationCustomizer...), ImportCustomizerpublic void setBeanFactory(BeanFactory beanFactory)
BeanFactoryAware 通常の Bean プロパティの設定後、ただし InitializingBean.afterPropertiesSet() またはカスタム init-method などの初期化コールバックの前に呼び出されます。
BeanFactoryAware 内の setBeanFactory beanFactory - 所有 BeanFactory(非 null)。Bean は、ファクトリのメソッドをすぐに呼び出すことができます。BeanInitializationExceptionpublic void setBeanClassLoader(java.lang.ClassLoader classLoader)
BeanClassLoaderAwareclass loader を Bean インスタンスに提供するコールバック。 通常の Bean プロパティの設定後、ただし InitializingBean's InitializingBean.afterPropertiesSet() メソッドやカスタム init-method などの初期化コールバックの前に呼び出されます。
BeanClassLoaderAware 内の setBeanClassLoader classLoader - 所有クラスローダー public groovy.lang.GroovyClassLoader getGroovyClassLoader()
protected groovy.lang.GroovyClassLoader buildGroovyClassLoader(@Nullable java.lang.ClassLoader classLoader)
ClassLoader の GroovyClassLoader を構築します。classLoader - GroovyClassLoader を構築するための ClassLoaderpublic java.lang.String getScriptSourceLocator()
ScriptFactoryサポートされている一般的なロケータは、Spring リソースの場所 ( "file:C:/myScript.bsh"" や "classpath:myPackage/myScript.bsh" など) とインラインスクリプト ( "inline:myScriptText..." ) です。
ScriptFactory 内の getScriptSourceLocator ScriptFactoryPostProcessor.convertToScriptSource(java.lang.String, java.lang.String, org.springframework.core.io.ResourceLoader), ResourceLoader@Nullable public java.lang.Class<?>[] getScriptInterfaces()
ScriptFactory 内の getScriptInterfaces null は常に public boolean requiresConfigInterface()
ScriptFactory 内の requiresConfigInterface ScriptFactory.getScriptInterfaces()@Nullable public java.lang.Object getScriptedObject(ScriptSource scriptSource, @Nullable java.lang.Class<?>... actualInterfaces) throws java.io.IOException, ScriptCompilationException
ScriptFactory 内の getScriptedObject scriptSource - スクリプトソーステキストを取得する実際の ScriptSource (非 null)actualInterfaces - スクリプトインターフェースと生成された設定インターフェースを含む、公開する実際のインターフェース (該当する場合 ; null の可能性があります)java.io.IOException - スクリプトの取得に失敗した場合 ScriptCompilationException - スクリプトのコンパイルが失敗した場合 GroovyClassLoader@Nullable public java.lang.Class<?> getScriptedObjectType(ScriptSource scriptSource) throws java.io.IOException, ScriptCompilationException
ScriptFactory実装では、生成されたスクリプトクラスなどのスクリプトメタデータをキャッシュすることをお勧めします。このメソッドは同時に呼び出すことができ、スレッドセーフな方法で実装する必要があることに注意してください。
ScriptFactory 内の getScriptedObjectType scriptSource - スクリプトソーステキストを取得する実際の ScriptSource (非 null)null java.io.IOException - スクリプトの取得に失敗した場合 ScriptCompilationException - スクリプトのコンパイルが失敗した場合 public boolean requiresScriptedObjectRefresh(ScriptSource scriptSource)
ScriptFactoryisModified() メソッドなどを使用)。ScriptFactory 内の requiresScriptedObjectRefresh scriptSource - スクリプトソーステキストを取得する実際の ScriptSource (非 null)ScriptFactory.getScriptedObject(org.springframework.scripting.ScriptSource, java.lang.Class<?>...) 呼び出しが必要かどうか ScriptSource.isModified()@Nullable protected java.lang.Object executeScript(ScriptSource scriptSource, java.lang.Class<?> scriptClass) throws ScriptCompilationException
scriptSource - 基本となるスクリプトのソース scriptClass - Groovy スクリプトクラス ScriptCompilationException - インスタンス化が失敗した場合 public java.lang.String toString()
java.lang.Object の toString