public class ScriptTemplateConfigurer extends ObjectSE implements ScriptTemplateConfig
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 のように、同時実行用に設計されていないテンプレートライブラリで非スレッドセーフスクリプトエンジンを使用できます。
ScriptTemplateView
コンストラクターと説明 |
---|
ScriptTemplateConfigurer() デフォルトコンストラクター。 |
ScriptTemplateConfigurer(StringSE engineName) 指定されたエンジン名を使用して新しい ScriptTemplateConfigurer を作成します。 |
修飾子と型 | メソッドと説明 |
---|---|
CharsetSE | getCharset() スクリプトおよびテンプレートファイルの読み取りに使用される文字セットを返します。 |
ScriptEngineSE | getEngine() ビューで使用する ScriptEngine SE を返します。 |
StringSE | getEngineName() ScriptEngine SE のインスタンス化に使用されるエンジン名を返します。 |
SupplierSE<ScriptEngineSE> | getEngineSupplier() ScriptEngine SE のインスタンス化に使用されるエンジンサプライヤーを返します。 |
StringSE | getRenderFunction() レンダリング関数名を返します(オプション)。 |
StringSE | getRenderObject() render 関数が属するオブジェクトを返します(オプション)。 |
StringSE | getResourceLoaderPath() Spring リソースの場所を介してリソースローダーのパスを返します。 |
StringSE[] | getScripts() スクリプトエンジン(ライブラリまたはユーザー指定)によってロードされるスクリプトを返します。 |
BooleanSE | isSharedEngine() すべてのスレッドで共有エンジンを使用するか、各スレッドのスレッドローカルエンジンインスタンスを作成するかを返します。 |
void | setCharset(CharsetSE charset) スクリプトおよびテンプレートファイルの読み取りに使用する文字セットを設定します。 |
void | setEngine(ScriptEngineSE engine) ScriptEngine SE をビューで使用するように設定します。 |
void | setEngineName(StringSE engineName) ScriptEngine SE のインスタンス化に使用されるエンジン名を設定します。 |
void | setEngineSupplier(SupplierSE<ScriptEngineSE> engineSupplier) |
void | setRenderFunction(StringSE renderFunction) レンダリング関数名を設定します(オプション)。 |
void | setRenderObject(StringSE renderObject) render 関数が属するオブジェクトを設定します(オプション)。 |
void | setResourceLoaderPath(StringSE resourceLoaderPath) Spring リソースの場所を介してリソースローダーのパスを設定します。 |
void | setScripts(StringSE... scriptNames) スクリプトエンジン(ライブラリまたはユーザー指定)によってロードされるスクリプトを設定します。 |
void | setSharedEngine(BooleanSE sharedEngine) false に設定すると、リクエストごとに新しい ScriptEngine SE インスタンスが作成されます。それ以外の場合は、同じインスタンスが再利用されます。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public ScriptTemplateConfigurer()
public ScriptTemplateConfigurer(StringSE engineName)
public void setEngine(@Nullable ScriptEngineSE engine)
ScriptEngine
SE をビューで使用するように設定します。renderFunction
が指定されている場合、スクリプトエンジンは Invocable
を実装する必要があります。engine
または engineName
の両方ではなく、両方を定義する必要があります。sharedEngine
フラグが false
に設定されている場合、この setter ではなく、setEngineName(String)
または setEngineSupplier(Supplier)
でスクリプトエンジンを指定する必要があります(スクリプトエンジンの複数の遅延インスタンス化を意味するため)。
@Nullable public ScriptEngineSE getEngine()
ScriptTemplateConfig
ScriptEngine
SE を返します。ScriptTemplateConfig
の getEngine
public void setEngineSupplier(@Nullable SupplierSE<ScriptEngineSE> engineSupplier)
ScriptEngine
SE サプライヤーをビューで使用するように設定します。通常は setSharedEngine(Boolean)
を false
に設定して使用します。renderFunction
が指定されている場合、スクリプトエンジンは Invocable
を実装する必要があります。engineSupplier
、engine
、engineName
のいずれかを定義する必要があります。setEngine(ScriptEngine)
, setEngineName(String)
@Nullable public SupplierSE<ScriptEngineSE> getEngineSupplier()
ScriptTemplateConfig
ScriptEngine
SE のインスタンス化に使用されるエンジンサプライヤーを返します。ScriptTemplateConfig
の getEngineSupplier
public void setEngineName(@Nullable StringSE engineName)
ScriptEngine
SE のインスタンス化に使用されるエンジン名を設定します。renderFunction
が指定されている場合、スクリプトエンジンは Invocable
を実装する必要があります。engine
または engineName
の両方ではなく、両方を定義する必要があります。@Nullable public StringSE getEngineName()
ScriptTemplateConfig
ScriptEngine
SE のインスタンス化に使用されるエンジン名を返します。ScriptTemplateConfig
の getEngineName
public void setSharedEngine(@Nullable BooleanSE sharedEngine)
false
に設定すると、リクエストごとに新しい ScriptEngine
SE インスタンスが作成されます。それ以外の場合は、同じインスタンスが再利用されます。Nashorn で実行されている Handlebars や React などの同時実行用に設計されていないテンプレートライブラリを使用する非スレッドセーフスクリプトエンジンを使用する場合は、このフラグを false
に設定する必要があります。 このフラグが false
に設定されている場合、スクリプトエンジンは setEngineName(String)
を使用して指定する必要があります。リクエストごとにスクリプトエンジンの複数のインスタンスを作成する必要があるため、setEngine(ScriptEngine)
を使用することはできません。
@Nullable public BooleanSE isSharedEngine()
ScriptTemplateConfig
ScriptTemplateConfig
の isSharedEngine
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");
を呼び出す必要があります。
@Nullable public StringSE[] getScripts()
ScriptTemplateConfig
ScriptTemplateConfig
の getScripts
public void setRenderObject(@Nullable StringSE renderObject)
Mustache.render()
を呼び出すには、renderObject
を "Mustache"
に、renderFunction
を "render"
に設定する必要があります。@Nullable public StringSE getRenderObject()
ScriptTemplateConfig
ScriptTemplateConfig
の getRenderObject
public void setRenderFunction(@Nullable StringSE renderFunction)
ScriptEngine.eval(String, Bindings)
SE で評価されます。この関数は、次のパラメーターで呼び出されます。
String template
: テンプレートの内容 Map model
: ビューモデル RenderingContext context
: レンダリングコンテキスト RenderingContext
@Nullable public StringSE getRenderFunction()
ScriptTemplateConfig
ScriptEngine.eval(String, Bindings)
SE で評価されます。ScriptTemplateConfig
の getRenderFunction
public void setCharset(@Nullable CharsetSE charset)
UTF-8
)。@Nullable public CharsetSE getCharset()
ScriptTemplateConfig
ScriptTemplateConfig
の getCharset
public void setResourceLoaderPath(@Nullable StringSE resourceLoaderPath)
ResourceLoader
で理解されているように、"file:" や "classpath:" などの標準 URL と疑似 URL がサポートされています。ApplicationContext で実行している場合は、相対パスを使用できます。デフォルトは "classpath:" です。
@Nullable public StringSE getResourceLoaderPath()
ScriptTemplateConfig
ScriptTemplateConfig
の getResourceLoaderPath