クラス FreeMarkerConfigurationFactory

java.lang.ObjectSE
org.springframework.ui.freemarker.FreeMarkerConfigurationFactory
既知の直属サブクラス
FreeMarkerConfigurationFactoryBeanFreeMarkerConfigurerFreeMarkerConfigurer

public class FreeMarkerConfigurationFactory extends ObjectSE
FreeMarker 構成を構成するファクトリ。スタンドアロンで使用できますが、通常、構成を Bean 参照として準備するために FreeMarkerConfigurationFactoryBean を使用するか、Web ビュー用に FreeMarkerConfigurer を使用します。

オプションの "configLocation" プロパティは、現在のアプリケーション内の FreeMarker プロパティファイルの場所を設定します。FreeMarker プロパティは、"freemarkerSettings" を介してオーバーライドできます。これらのプロパティはすべて、FreeMarker の Configuration.setSettings() メソッドを呼び出すことによって設定され、FreeMarker によって設定された制約に従います。

"freemarkerVariables" プロパティを使用して、setAllSharedVariables() メソッドを介して構成に適用される共有変数のマップを指定できます。setSettings() と同様に、これらのエントリは FreeMarker の制約を受けます。

このクラスを使用する最も簡単な方法は、"templateLoaderPath" を指定することです。FreeMarker はそれ以上の設定を必要としません。

メモ: Spring の FreeMarker サポートには FreeMarker 2.3 以上が必要です。

導入:
03.03.2004
作成者:
Darren Davison, Juergen Hoeller
関連事項:
  • フィールドサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    protected final Log
  • コンストラクターのサマリー

    コンストラクター
    コンストラクター
    説明
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    freemarker.template.Configuration
    FreeMarker 構成を準備して返送します。
    protected freemarker.cache.TemplateLoader
    getAggregateTemplateLoader(ListSE<freemarker.cache.TemplateLoader> templateLoaders)
    指定された TemplateLoader リストに基づいて TemplateLoader を返します。
    protected ResourceLoader
    FreeMarker テンプレートファイルのロードに使用する Spring ResourceLoader を返します。
    protected freemarker.cache.TemplateLoader
    指定されたパスの FreeMarker TemplateLoader を決定します。
    protected boolean
    テンプレートのロードにファイルシステムアクセスを優先するかどうかを返します。
    protected freemarker.template.Configuration
    新しい Configuration オブジェクトを返します。
    protected void
    postProcessConfiguration(freemarker.template.Configuration config)
    このファクトリがデフォルトの初期化を実行した後で、Configuration オブジェクトのカスタム後処理を実行するサブクラスによってオーバーライドされます。
    protected void
    postProcessTemplateLoaders(ListSE<freemarker.cache.TemplateLoader> templateLoaders)
    このファクトリがデフォルトのテンプレートローダーを作成した後、カスタム TemplateLoader インスタンスを登録するサブクラスによってオーバーライドされます。
    void
    FreeMarker 構成ファイルの場所を設定します。
    void
    setDefaultEncoding(StringSE defaultEncoding)
    FreeMarker 構成のデフォルトのエンコーディングを設定します。
    void
    FreeMarker の Configuration.setSettings メソッドに渡される既知の FreeMarker キーを含むプロパティを設定します。
    void
    FreeMarker の Configuration.setAllSharedVariables() メソッドに渡される既知の FreeMarker オブジェクトを含むマップを設定します。
    void
    setPostTemplateLoaders(freemarker.cache.TemplateLoader... postTemplateLoaders)
    テンプレートの検索に使用される TemplateLoader のリストを設定します。
    void
    setPreferFileSystemAccess(boolean preferFileSystemAccess)
    テンプレートのロードにファイルシステムアクセスを優先するかどうかを設定します。
    void
    setPreTemplateLoaders(freemarker.cache.TemplateLoader... preTemplateLoaders)
    テンプレートの検索に使用される TemplateLoader のリストを設定します。
    void
    FreeMarker テンプレートファイルのロードに使用する Spring ResourceLoader を設定します。
    void
    setTemplateLoaderPath(StringSE templateLoaderPath)
    Spring リソースの場所を介して Freemarker テンプレートローダーのパスを設定します。
    void
    setTemplateLoaderPaths(StringSE... templateLoaderPaths)
    Spring リソースの場所を介して複数の Freemarker テンプレートローダーパスを設定します。

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

    clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
  • フィールドの詳細

    • logger

      protected final Log logger
  • コンストラクターの詳細

    • FreeMarkerConfigurationFactory

      public FreeMarkerConfigurationFactory()
  • メソッドの詳細

    • setConfigLocation

      public void setConfigLocation(Resource resource)
      FreeMarker 構成ファイルの場所を設定します。または、すべての設定をローカルで指定できます。
      関連事項:
    • setFreemarkerSettings

      public void setFreemarkerSettings(PropertiesSE settings)
      FreeMarker の Configuration.setSettings メソッドに渡される既知の FreeMarker キーを含むプロパティを設定します。
      関連事項:
      • Configurable.setSettings(java.util.Properties)
    • setFreemarkerVariables

      public void setFreemarkerVariables(MapSE<StringSE,ObjectSE> variables)
      FreeMarker の Configuration.setAllSharedVariables() メソッドに渡される既知の FreeMarker オブジェクトを含むマップを設定します。
      関連事項:
      • Configuration.setAllSharedVariables(freemarker.template.TemplateHashModelEx)
    • setDefaultEncoding

      public void setDefaultEncoding(StringSE defaultEncoding)
      FreeMarker 構成のデフォルトのエンコーディングを設定します。指定しない場合、FreeMarker はプラットフォームファイルエンコーディングを使用します。

      レンダリングプロセスに明示的なエンコーディングが指定されていない場合(Spring の FreeMarkerView など)を除き、テンプレートレンダリングに使用されます。

      関連事項:
    • setPreTemplateLoaders

      public void setPreTemplateLoaders(freemarker.cache.TemplateLoader... preTemplateLoaders)
      テンプレートの検索に使用される TemplateLoader のリストを設定します。例: データベースローダーなどの 1 つ以上のカスタムローダーを設定して、ここに挿入できます。

      TemplateLoaders は、(指定された "templateLoaderPaths" または postProcessTemplateLoaders(java.util.List<freemarker.cache.TemplateLoader>) に登録されているすべてのローダーローダーなど)は、このファクトリでは、レジスタという既定のテンプレートローダーの前に登録されますここで指定しました。

      関連事項:
    • setPostTemplateLoaders

      public void setPostTemplateLoaders(freemarker.cache.TemplateLoader... postTemplateLoaders)
      テンプレートの検索に使用される TemplateLoader のリストを設定します。例: データベースローダーなどの 1 つ以上のカスタムローダーを構成できます。

      TemplateLoaders は、(指定された "templateLoaderPaths" または postProcessTemplateLoaders(java.util.List<freemarker.cache.TemplateLoader>) に登録されているすべてのローダーローダーなど)は、このファクトリでは、登録するデフォルトのテンプレートローダー後に登録されますここで指定しました。

      関連事項:
    • setTemplateLoaderPath

      public void setTemplateLoaderPath(StringSE templateLoaderPath)
      Spring リソースの場所を介して Freemarker テンプレートローダーのパスを設定します。パス処理の詳細については、"templateLoaderPaths" プロパティを参照してください。
      関連事項:
    • setTemplateLoaderPaths

      public void setTemplateLoaderPaths(StringSE... templateLoaderPaths)
      Spring リソースの場所を介して複数の Freemarker テンプレートローダーパスを設定します。

      文字列を介して入力された場合、ResourceEditor が理解しているように、"file:" や "classpath:" 疑似 URL などの標準 URL がサポートされます。ApplicationContext で実行するときに相対パスを許可します。

      デフォルトの FreeMarker テンプレートローダーのパスを定義します。指定されたリソースを java.io.File に解決できない場合、変更の検出なしで汎用 SpringTemplateLoader が使用されます。

      SpringTemplateLoader の使用を強制する、つまりパスをファイルシステムリソースとして解決しないようにするには、"preferFileSystemAccess" フラグをオフにします。詳細については、後者の javadoc を参照してください。

      TemplateLoaders の独自のリストを指定する場合は、このプロパティを設定せず、代わりに setTemplateLoaders(List templateLoaders) を使用してください

      関連事項:
    • setResourceLoader

      public void setResourceLoader(ResourceLoader resourceLoader)
      FreeMarker テンプレートファイルのロードに使用する Spring ResourceLoader を設定します。デフォルトは DefaultResourceLoader です。コンテキストで実行している場合、ApplicationContext によってオーバーライドされます。
      関連事項:
    • getResourceLoader

      protected ResourceLoader getResourceLoader()
      FreeMarker テンプレートファイルのロードに使用する Spring ResourceLoader を返します。
    • setPreferFileSystemAccess

      public void setPreferFileSystemAccess(boolean preferFileSystemAccess)
      テンプレートのロードにファイルシステムアクセスを優先するかどうかを設定します。ファイルシステムアクセスにより、テンプレート変更のホット検出が可能になります。

      これが有効になっている場合、FreeMarkerConfigurationFactory は指定された "templateLoaderPath" をファイルシステムリソースとして解決しようとします(これは、拡張クラスパスリソースと ServletContext リソースでも機能します)。

      デフォルトは "true" です。これをオフにすると、常に SpringTemplateLoader 経由で(つまり、テンプレートの変更をホット検出せずにストリームとして)読み込まれます。これは、一部のテンプレートが展開されたクラスディレクトリにあり、他のテンプレートが jar ファイルにある場合に必要になることがあります。

      関連事項:
    • isPreferFileSystemAccess

      protected boolean isPreferFileSystemAccess()
      テンプレートのロードにファイルシステムアクセスを優先するかどうかを返します。
    • createConfiguration

      public freemarker.template.Configuration createConfiguration() throws IOExceptionSE, freemarker.template.TemplateException
      FreeMarker 構成を準備して返送します。
      戻り値:
      FreeMarker 構成オブジェクト
      例外:
      IOExceptionSE - 設定ファイルが見つからなかった場合
      freemarker.template.TemplateException - FreeMarker の初期化エラー
    • newConfiguration

      protected freemarker.template.Configuration newConfiguration() throws IOExceptionSE, freemarker.template.TemplateException
      新しい Configuration オブジェクトを返します。サブクラスは、カスタム初期化(FreeMarker 2.3.21 の新機能である FreeMarker 互換性レベルの指定など)や、モックオブジェクトをテストに使用するために、これをオーバーライドできます。

      createConfiguration() によって呼び出されます。

      戻り値:
      構成オブジェクト
      例外:
      IOExceptionSE - 設定ファイルが見つからなかった場合
      freemarker.template.TemplateException - FreeMarker の初期化エラー
      関連事項:
    • getTemplateLoaderForPath

      protected freemarker.cache.TemplateLoader getTemplateLoaderForPath(StringSE templateLoaderPath)
      指定されたパスの FreeMarker TemplateLoader を決定します。

      デフォルトの実装では、FileTemplateLoader または SpringTemplateLoader が作成されます。

      パラメーター:
      templateLoaderPath - テンプレートをロードするパス
      戻り値:
      適切な TemplateLoader
      関連事項:
    • postProcessTemplateLoaders

      protected void postProcessTemplateLoaders(ListSE<freemarker.cache.TemplateLoader> templateLoaders)
      このファクトリがデフォルトのテンプレートローダーを作成した後、カスタム TemplateLoader インスタンスを登録するサブクラスによってオーバーライドされます。

      createConfiguration() によって呼び出されます。指定された "postTemplateLoaders" は、このコールバックによって登録されたローダーのに登録されることに注意してください。結果として、それらは与えられたリストに含まれていません

      パラメーター:
      templateLoaders - サブクラスによって変更される TemplateLoader インスタンスの現在のリスト
      関連事項:
    • getAggregateTemplateLoader

      @Nullable protected freemarker.cache.TemplateLoader getAggregateTemplateLoader(ListSE<freemarker.cache.TemplateLoader> templateLoaders)
      指定された TemplateLoader リストに基づいて TemplateLoader を返します。複数の TemplateLoader が登録されている場合は、FreeMarker MultiTemplateLoader を作成する必要があります。
      パラメーター:
      templateLoaders - TemplateLoader インスタンスの最終リスト
      戻り値:
      集約 TemplateLoader
    • postProcessConfiguration

      protected void postProcessConfiguration(freemarker.template.Configuration config) throws IOExceptionSE, freemarker.template.TemplateException
      このファクトリがデフォルトの初期化を実行した後で、Configuration オブジェクトのカスタム後処理を実行するサブクラスによってオーバーライドされます。

      createConfiguration() によって呼び出されます。

      パラメーター:
      config - 現在の構成オブジェクト
      例外:
      IOExceptionSE - 設定ファイルが見つからなかった場合
      freemarker.template.TemplateException - FreeMarker の初期化エラー
      関連事項: