クラス StandardScriptFactory

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

public class StandardScriptFactory extends ObjectSE implements ScriptFactory, BeanClassLoaderAware
JSR-223 スクリプトエンジン抽象化に基づく ScriptFactory 実装(Java に含まれている)。JavaScript、Groovy、JRuby、その他の JSR-223 準拠のエンジンをサポートします。

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

導入:
4.2
作成者:
Juergen Hoeller
関連事項:
  • コンストラクターの詳細

    • StandardScriptFactory

      public StandardScriptFactory(StringSE scriptSourceLocator)
      指定されたスクリプトソースの新しい StandardScriptFactory を作成します。
      パラメーター:
      scriptSourceLocator - スクリプトのソースを指すロケーター。実際にスクリプトを作成するポストプロセッサーによって解釈されます。
    • StandardScriptFactory

      public StandardScriptFactory(StringSE scriptSourceLocator, ClassSE<?>... scriptInterfaces)
      指定されたスクリプトソースの新しい StandardScriptFactory を作成します。
      パラメーター:
      scriptSourceLocator - スクリプトのソースを指すロケーター。実際にスクリプトを作成するポストプロセッサーによって解釈されます。
      scriptInterfaces - スクリプトオブジェクトが実装することになっている Java インターフェース
    • StandardScriptFactory

      public StandardScriptFactory(StringSE scriptEngineName, StringSE scriptSourceLocator)
      指定されたスクリプトソースの新しい StandardScriptFactory を作成します。
      パラメーター:
      scriptEngineName - 使用する JSR-223 ScriptEngine の名前 (スクリプトソースから推論される代わりに明示的に与えられる)
      scriptSourceLocator - スクリプトのソースを指すロケーター。実際にスクリプトを作成するポストプロセッサーによって解釈されます。
    • StandardScriptFactory

      public StandardScriptFactory(@Nullable StringSE scriptEngineName, StringSE scriptSourceLocator, @Nullable ClassSE<?>... scriptInterfaces)
      指定されたスクリプトソースの新しい StandardScriptFactory を作成します。
      パラメーター:
      scriptEngineName - 使用する JSR-223 ScriptEngine の名前 (スクリプトソースから推論される代わりに明示的に与えられる)
      scriptSourceLocator - スクリプトのソースを指すロケーター。実際にスクリプトを作成するポストプロセッサーによって解釈されます。
      scriptInterfaces - スクリプトオブジェクトが実装することになっている Java インターフェース
  • メソッドの詳細

    • setBeanClassLoader

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

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

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

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

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

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

      @Nullable public ClassSE<?>[] getScriptInterfaces()
      インターフェースからコピーされた説明: ScriptFactory
      スクリプトが実装することになっているビジネスインターフェースを返します。

      スクリプト自体がその Java インターフェースを決定する場合(Groovy の場合など)、null を返すことができます。

      次で指定:
      インターフェース ScriptFactorygetScriptInterfaces 
      戻り値:
      スクリプトのインターフェース
    • requiresConfigInterface

      public boolean requiresConfigInterface()
      インターフェースからコピーされた説明: ScriptFactory
      スクリプトが構成インターフェースを生成する必要があるかどうかを返します。これは通常、getScriptInterfaces() で適切な構成インターフェースが指定されておらず、Java 署名自体を決定しないスクリプトの場合です。
      次で指定:
      インターフェース ScriptFactoryrequiresConfigInterface 
      戻り値:
      スクリプトが生成された構成インターフェースを必要とするかどうか
      関連事項:
    • getScriptedObject

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

      protected ObjectSE evaluateScript(ScriptSource scriptSource)
    • retrieveScriptEngine

      @Nullable protected ScriptEngineSE retrieveScriptEngine(ScriptSource scriptSource)
    • adaptToInterfaces

      @Nullable protected ObjectSE adaptToInterfaces(@Nullable ObjectSE script, ScriptSource scriptSource, ClassSE<?>... actualInterfaces)
    • 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<?>...) 呼び出しが必要かどうか
      関連事項:
    • toString

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