クラス GroovyScriptFactory

java.lang.ObjectSE
org.springframework.scripting.groovy.GroovyScriptFactory
実装されたすべてのインターフェース:
AwareBeanClassLoaderAwareBeanFactoryAwareScriptFactory

public class GroovyScriptFactory extends ObjectSE implements ScriptFactory, BeanFactoryAware, BeanClassLoaderAware
Groovy スクリプトの ScriptFactory 実装。

通常、ScriptFactoryPostProcessor と組み合わせて使用されます。設定例については、後者の javadoc を参照してください。

メモ: Spring 4.0 は Groovy 1.8 以降をサポートしています。

導入:
2.0
作成者:
Juergen Hoeller, Rob Harrop, Rod Johnson
関連事項:
  • コンストラクターのサマリー

    コンストラクター
    コンストラクター
    説明
    GroovyScriptFactory(StringSE scriptSourceLocator)
    指定されたスクリプトソースの新しい GroovyScriptFactory を作成します。
    GroovyScriptFactory(StringSE scriptSourceLocator, org.codehaus.groovy.control.CompilerConfiguration compilerConfiguration)
    指定されたスクリプトソースの新しい GroovyScriptFactory を作成します。カスタム MetaClass を作成して不足しているメソッドを提供したり、オブジェクトの動作を変更したりできるストラテジーインターフェースを指定します。
    GroovyScriptFactory(StringSE scriptSourceLocator, org.codehaus.groovy.control.customizers.CompilationCustomizer... compilationCustomizers)
    基になる GroovyClassLoader 内の Groovy のコンパイルプロセスをカスタマイズできる戦略インターフェースを指定して、指定されたスクリプトソースの新しい GroovyScriptFactory を作成します。
    GroovyScriptFactory(StringSE scriptSourceLocator, GroovyObjectCustomizer groovyObjectCustomizer)
    指定されたスクリプトソースの新しい GroovyScriptFactory を作成します。カスタム MetaClass を作成して不足しているメソッドを提供したり、オブジェクトの動作を変更したりできるストラテジーインターフェースを指定します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    protected groovy.lang.GroovyClassLoader
    指定された ClassLoader の GroovyClassLoader を構築します。
    protected ObjectSE
    executeScript(ScriptSource scriptSource, ClassSE<?> scriptClass)
    指定された Groovy スクリプトクラスをインスタンス化し、必要に応じて実行します。
    groovy.lang.GroovyClassLoader
    このスクリプトファクトリで使用される GroovyClassLoader を返します。
    getScriptedObject(ScriptSource scriptSource, ClassSE<?>... actualInterfaces)
    GroovyClassLoader を介して Groovy スクリプトをロードして解析します。
    スクリプト Java オブジェクトの型を判別します。
    ClassSE<?>[]
    Groovy スクリプトはインターフェース自体を決定するため、ここでインターフェースを明示的に公開する必要はありません。
    スクリプトのソースを指すロケーターを返します。
    boolean
    Groovy スクリプトは、setter を public メソッドとして公開するため、構成インターフェースは必要ありません。
    boolean
    リフレッシュが必要かどうかを判断します(例:
    void
    Bean class loaderSE を Bean インスタンスに提供するコールバック。
    void
    所有ファクトリを Bean インスタンスに提供するコールバック。

    クラス java.lang.ObjectSE から継承されたメソッド

    clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, wait, waitSE, waitSE
  • コンストラクターの詳細

    • GroovyScriptFactory

      public GroovyScriptFactory(StringSE scriptSourceLocator)
      指定されたスクリプトソースの新しい GroovyScriptFactory を作成します。

      Groovy スクリプトはその Java インターフェース自体を定義するため、ここではスクリプトインターフェースを指定する必要はありません。

      パラメーター:
      scriptSourceLocator - スクリプトのソースを指すロケーター。実際にスクリプトを作成するポストプロセッサーによって解釈されます。
    • GroovyScriptFactory

      public GroovyScriptFactory(StringSE scriptSourceLocator, @Nullable GroovyObjectCustomizer groovyObjectCustomizer)
      指定されたスクリプトソースの新しい GroovyScriptFactory を作成します。カスタム MetaClass を作成して不足しているメソッドを提供したり、オブジェクトの動作を変更したりできるストラテジーインターフェースを指定します。
      パラメーター:
      scriptSourceLocator - スクリプトのソースを指すロケーター。実際にスクリプトを作成するポストプロセッサーによって解釈されます。
      groovyObjectCustomizer - カスタムメタクラスを設定したり、このファクトリによって作成された GroovyObject にその他の変更を加えたりできるカスタマイザ (null の場合があります)
      関連事項:
    • GroovyScriptFactory

      public GroovyScriptFactory(StringSE scriptSourceLocator, @Nullable org.codehaus.groovy.control.CompilerConfiguration compilerConfiguration)
      指定されたスクリプトソースの新しい GroovyScriptFactory を作成します。カスタム MetaClass を作成して不足しているメソッドを提供したり、オブジェクトの動作を変更したりできるストラテジーインターフェースを指定します。
      パラメーター:
      scriptSourceLocator - スクリプトのソースを指すロケーター。実際にスクリプトを作成するポストプロセッサーによって解釈されます。
      compilerConfiguration - GroovyClassLoader に適用されるカスタムコンパイラー構成 (null の場合があります)
      導入:
      4.3.3
      関連事項:
      • GroovyClassLoader(ClassLoader, CompilerConfiguration)
    • GroovyScriptFactory

      public GroovyScriptFactory(StringSE scriptSourceLocator, org.codehaus.groovy.control.customizers.CompilationCustomizer... compilationCustomizers)
      基になる GroovyClassLoader 内の Groovy のコンパイルプロセスをカスタマイズできる戦略インターフェースを指定して、指定されたスクリプトソースの新しい GroovyScriptFactory を作成します。
      パラメーター:
      scriptSourceLocator - スクリプトのソースを指すロケーター。実際にスクリプトを作成するポストプロセッサーによって解釈されます。
      compilationCustomizers - GroovyClassLoader コンパイラー構成に適用される 1 つ以上のカスタマイザ
      導入:
      4.3.3
      関連事項:
      • CompilerConfiguration.addCompilationCustomizers(org.codehaus.groovy.control.customizers.CompilationCustomizer...)
      • ImportCustomizer
  • メソッドの詳細

    • setBeanFactory

      public void setBeanFactory(BeanFactory beanFactory)
      インターフェースからコピーされた説明: BeanFactoryAware
      所有ファクトリを Bean インスタンスに提供するコールバック。

      通常の Bean プロパティの設定後、ただし InitializingBean.afterPropertiesSet() またはカスタム init-method などの初期化コールバックの前に呼び出されます。

      次で指定:
      インターフェース BeanFactoryAwaresetBeanFactory 
      パラメーター:
      beanFactory - 所有 BeanFactory(非 null)。Bean は、ファクトリのメソッドをすぐに呼び出すことができます。
      関連事項:
    • setBeanClassLoader

      public void setBeanClassLoader(ClassLoaderSE classLoader)
      インターフェースからコピーされた説明: BeanClassLoaderAware
      Bean class loaderSE を Bean インスタンスに提供するコールバック。

      通常の Bean プロパティの設定、ただし InitializingBean's InitializingBean.afterPropertiesSet() メソッドやカスタム init-method などの初期化コールバックの前に呼び出さます。

      次で指定:
      インターフェース BeanClassLoaderAwaresetBeanClassLoader 
      パラメーター:
      classLoader - 所有クラスローダー
    • getGroovyClassLoader

      public groovy.lang.GroovyClassLoader getGroovyClassLoader()
      このスクリプトファクトリで使用される GroovyClassLoader を返します。
    • buildGroovyClassLoader

      protected groovy.lang.GroovyClassLoader buildGroovyClassLoader(@Nullable ClassLoaderSE classLoader)
      指定された ClassLoader の GroovyClassLoader を構築します。
      パラメーター:
      classLoader - GroovyClassLoader を構築するための ClassLoader
      導入:
      4.3.3
    • getScriptSourceLocator

      public StringSE getScriptSourceLocator()
      インターフェースからコピーされた説明: ScriptFactory
      スクリプトのソースを指すロケーターを返します。実際にスクリプトを作成するポストプロセッサーによって解釈されます。

      サポートされている一般的なロケーターは、Spring リソースの場所( "file:C:/myScript.bsh"" や "classpath:myPackage/myScript.bsh" など)とインラインスクリプト( "inline:myScriptText..." )です。

      次で指定:
      インターフェース ScriptFactorygetScriptSourceLocator 
      戻り値:
      スクリプトソースロケータ
      関連事項:
    • getScriptInterfaces

      @Nullable public ClassSE<?>[] getScriptInterfaces()
      Groovy スクリプトはインターフェース自体を決定するため、ここでインターフェースを明示的に公開する必要はありません。
      次で指定:
      インターフェース ScriptFactorygetScriptInterfaces 
      戻り値:
      null は常に
    • requiresConfigInterface

      public boolean requiresConfigInterface()
      Groovy スクリプトは、setter を public メソッドとして公開するため、構成インターフェースは必要ありません。
      次で指定:
      インターフェース ScriptFactoryrequiresConfigInterface 
      戻り値:
      スクリプトが生成された構成インターフェースを必要とするかどうか
      関連事項:
    • getScriptedObject

      @Nullable public ObjectSE getScriptedObject(ScriptSource scriptSource, @Nullable ClassSE<?>... actualInterfaces) throws IOExceptionSE, ScriptCompilationException
      GroovyClassLoader を介して Groovy スクリプトをロードして解析します。
      次で指定:
      インターフェース ScriptFactorygetScriptedObject 
      パラメーター:
      scriptSource - スクリプトソーステキストを取得する実際の ScriptSource (非 null)
      actualInterfaces - スクリプトインターフェースと生成された設定インターフェースを含む、公開する実際のインターフェース (該当する場合 ; null の可能性があります)
      戻り値:
      スクリプト Java オブジェクト
      例外:
      IOExceptionSE - スクリプトの取得に失敗した場合
      ScriptCompilationException - スクリプトのコンパイルが失敗した場合
      関連事項:
      • GroovyClassLoader
    • getScriptedObjectType

      @Nullable public ClassSE<?> getScriptedObjectType(ScriptSource scriptSource) throws IOExceptionSE, ScriptCompilationException
      インターフェースからコピーされた説明: ScriptFactory
      スクリプト Java オブジェクトの型を判別します。

      実装では、生成されたスクリプトクラスなどのスクリプトメタデータをキャッシュすることをお勧めします。このメソッドは同時に呼び出すことができ、スレッドセーフな方法で実装する必要があることに注意してください。

      次で指定:
      インターフェース ScriptFactorygetScriptedObjectType 
      パラメーター:
      scriptSource - スクリプトソーステキストを取得する実際の ScriptSource (非 null)
      戻り値:
      スクリプト化された Java オブジェクトの型、または判別できない場合は null 
      例外:
      IOExceptionSE - スクリプトの取得に失敗した場合
      ScriptCompilationException - スクリプトのコンパイルが失敗した場合
    • requiresScriptedObjectRefresh

      public boolean requiresScriptedObjectRefresh(ScriptSource scriptSource)
      インターフェースからコピーされた説明: ScriptFactory
      リフレッシュが必要かどうかを判断します(ScriptSource の isModified() メソッドなどを使用)。
      次で指定:
      インターフェース ScriptFactoryrequiresScriptedObjectRefresh 
      パラメーター:
      scriptSource - スクリプトソーステキストを取得する実際の ScriptSource (非 null)
      戻り値:
      新しい ScriptFactory.getScriptedObject(org.springframework.scripting.ScriptSource, java.lang.Class<?>...) 呼び出しが必要かどうか
      関連事項:
    • executeScript

      @Nullable protected ObjectSE executeScript(ScriptSource scriptSource, ClassSE<?> scriptClass) throws ScriptCompilationException
      指定された Groovy スクリプトクラスをインスタンス化し、必要に応じて実行します。
      パラメーター:
      scriptSource - 基本となるスクリプトのソース
      scriptClass - Groovy スクリプトクラス
      戻り値:
      結果オブジェクト (スクリプトクラスのインスタンスまたはスクリプトインスタンスの実行結果)
      例外:
      ScriptCompilationException - インスタンス化が失敗した場合
    • toString

      public StringSE toString()
      オーバーライド:
      クラス ObjectSEtoString