クラス ScriptTemplateConfigurer

java.lang.ObjectSE
org.springframework.web.reactive.result.view.script.ScriptTemplateConfigurer
実装されたすべてのインターフェース:
ScriptTemplateConfig

public class ScriptTemplateConfigurer extends ObjectSE implements ScriptTemplateConfig
Web アプリケーションで使用する ScriptEngine を作成するための Spring WebFlux ScriptTemplateConfig の実装。
 // Add the following to an @Configuration class
 @Bean
 public ScriptTemplateConfigurer mustacheConfigurer() {
    ScriptTemplateConfigurer configurer = new ScriptTemplateConfigurer();
    configurer.setEngineName("nashorn");
    configurer.setScripts("mustache.js");
    configurer.setRenderObject("Mustache");
    configurer.setRenderFunction("render");
    return configurer;
 }
 

注意 : sharedEngine プロパティを false に設定することにより、Handlebars または Nashorn で実行されている React のように、同時実行用に設計されていないテンプレートライブラリで非スレッドセーフスクリプトエンジンを使用できます。

導入:
5.0
作成者:
Sebastien Deleuze
関連事項:
  • コンストラクターの詳細

    • ScriptTemplateConfigurer

      public ScriptTemplateConfigurer()
      デフォルトコンストラクター。
    • ScriptTemplateConfigurer

      public ScriptTemplateConfigurer(StringSE engineName)
      指定されたエンジン名を使用して新しい ScriptTemplateConfigurer を作成します。
  • メソッドの詳細

    • setEngine

      public void setEngine(@Nullable ScriptEngineSE engine)
      ScriptEngineSE をビューで使用するように設定します。renderFunction が指定されている場合、スクリプトエンジンは Invocable を実装する必要があります。engine または engineName の両方ではなく、両方を定義する必要があります。

      sharedEngine フラグが false に設定されている場合、この setter ではなく、setEngineName(String) または setEngineSupplier(Supplier) でスクリプトエンジンを指定する必要があります(スクリプトエンジンの複数の遅延インスタンス化を意味するため)。

      関連事項:
    • getEngine

      @Nullable public ScriptEngineSE getEngine()
      インターフェースからコピーされた説明: ScriptTemplateConfig
      ビューで使用する ScriptEngineSE を返します。
      次で指定:
      インターフェース ScriptTemplateConfiggetEngine 
    • setEngineSupplier

      public void setEngineSupplier(@Nullable SupplierSE<ScriptEngineSE> engineSupplier)
      ScriptEngineSE サプライヤーをビューで使用するように設定します。通常は setSharedEngine(Boolean) を false に設定して使用します。renderFunction が指定されている場合、スクリプトエンジンは Invocable を実装する必要があります。engineSupplierengineengineName のいずれかを定義する必要があります。
      導入:
      5.2
      関連事項:
    • getEngineSupplier

      @Nullable public SupplierSE<ScriptEngineSE> getEngineSupplier()
      インターフェースからコピーされた説明: ScriptTemplateConfig
      ScriptEngineSE のインスタンス化に使用されるエンジンサプライヤーを返します。
      次で指定:
      インターフェース ScriptTemplateConfiggetEngineSupplier 
    • setEngineName

      public void setEngineName(@Nullable StringSE engineName)
      ScriptEngineSE のインスタンス化に使用されるエンジン名を設定します。renderFunction が指定されている場合、スクリプトエンジンは Invocable を実装する必要があります。engine または engineName の両方ではなく、両方を定義する必要があります。
      関連事項:
    • getEngineName

      @Nullable public StringSE getEngineName()
      インターフェースからコピーされた説明: ScriptTemplateConfig
      ScriptEngineSE のインスタンス化に使用されるエンジン名を返します。
      次で指定:
      インターフェース ScriptTemplateConfiggetEngineName 
    • setSharedEngine

      public void setSharedEngine(@Nullable BooleanSE sharedEngine)
      false に設定すると、リクエストごとに新しい ScriptEngineSE インスタンスが作成されます。それ以外の場合は、同じインスタンスが再利用されます。Nashorn で実行されている Handlebars や React などの同時実行用に設計されていないテンプレートライブラリを使用する非スレッドセーフスクリプトエンジンを使用する場合は、このフラグを false に設定する必要があります。

      このフラグが false に設定されている場合、スクリプトエンジンは setEngineName(String) を使用して指定する必要があります。リクエストごとにスクリプトエンジンの複数のインスタンスを作成する必要があるため、setEngine(ScriptEngine) を使用することはできません。

      関連事項:
    • isSharedEngine

      @Nullable public BooleanSE isSharedEngine()
      インターフェースからコピーされた説明: ScriptTemplateConfig
      すべてのスレッドで共有エンジンを使用するか、各スレッドのスレッドローカルエンジンインスタンスを作成するかを返します。
      次で指定:
      インターフェース ScriptTemplateConfigisSharedEngine 
    • setScripts

      public void setScripts(@Nullable StringSE... scriptNames)
      スクリプトエンジン(ライブラリまたはユーザー指定)によってロードされるスクリプトを設定します。resourceLoaderPath のデフォルト値は "classpath:" であるため、クラスパスで使用可能なスクリプトを簡単にロードできます。

      例: WebJars 依存関係およびカスタム "render.js" ファイルとして使用可能な JavaScript ライブラリを使用するには、configurer.setScripts("/META-INF/resources/webjars/library/version/library.js", "com/myproject/script/render.js"); を呼び出す必要があります。

      関連事項:
    • getScripts

      @Nullable public StringSE[] getScripts()
      インターフェースからコピーされた説明: ScriptTemplateConfig
      スクリプトエンジン(ライブラリまたはユーザー指定)によってロードされるスクリプトを返します。
      次で指定:
      インターフェース ScriptTemplateConfiggetScripts 
    • setRenderObject

      public void setRenderObject(@Nullable StringSE renderObject)
      render 関数が属するオブジェクトを設定します(オプション)。例: Mustache.render() を呼び出すには、renderObject を "Mustache" に、renderFunction を "render" に設定する必要があります。
    • getRenderObject

      @Nullable public StringSE getRenderObject()
      インターフェースからコピーされた説明: ScriptTemplateConfig
      render 関数が属するオブジェクトを返します(オプション)。
      次で指定:
      インターフェース ScriptTemplateConfiggetRenderObject 
    • setRenderFunction

      public void setRenderFunction(@Nullable StringSE renderFunction)
      レンダリング関数名を設定します(オプション)。指定しない場合、スクリプトテンプレートは ScriptEngine.eval(String, Bindings)SE で評価されます。

      この関数は、次のパラメーターで呼び出されます。

      1. String template: テンプレートの内容
      2. Map model: ビューモデル
      3. RenderingContext context: レンダリングコンテキスト
      関連事項:
    • getRenderFunction

      @Nullable public StringSE getRenderFunction()
      インターフェースからコピーされた説明: ScriptTemplateConfig
      レンダリング関数名を返します(オプション)。指定しない場合、スクリプトテンプレートは ScriptEngine.eval(String, Bindings)SE で評価されます。
      次で指定:
      インターフェース ScriptTemplateConfiggetRenderFunction 
    • setCharset

      public void setCharset(@Nullable CharsetSE charset)
      スクリプトおよびテンプレートファイルの読み取りに使用する文字セットを設定します。(デフォルトでは UTF-8)。
    • getCharset

      @Nullable public CharsetSE getCharset()
      インターフェースからコピーされた説明: ScriptTemplateConfig
      スクリプトおよびテンプレートファイルの読み取りに使用される文字セットを返します。
      次で指定:
      インターフェース ScriptTemplateConfiggetCharset 
    • setResourceLoaderPath

      public void setResourceLoaderPath(@Nullable StringSE resourceLoaderPath)
      Spring リソースの場所を介してリソースローダーのパスを設定します。パスのコンマ区切りリストとして複数の場所を受け入れます。Spring の ResourceLoader で理解されているように、"file:" や "classpath:" などの標準 URL と疑似 URL がサポートされています。ApplicationContext で実行している場合は、相対パスを使用できます。

      デフォルトは "classpath:" です。

    • getResourceLoaderPath

      @Nullable public StringSE getResourceLoaderPath()
      インターフェースからコピーされた説明: ScriptTemplateConfig
      Spring リソースの場所を介してリソースローダーのパスを返します。
      次で指定:
      インターフェース ScriptTemplateConfiggetResourceLoaderPath