クラス FreeMarkerConfigurationFactory
オプションの "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
- 関連事項:
フィールドサマリー
コンストラクターのサマリー
メソッドのサマリー
修飾子と型メソッド説明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
getTemplateLoaderForPath
(StringSE templateLoaderPath) 指定されたパスの 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
setConfigLocation
(Resource resource) FreeMarker 構成ファイルの場所を設定します。void
setDefaultEncoding
(StringSE defaultEncoding) FreeMarker 構成のデフォルトのエンコーディングを設定します。void
setFreemarkerSettings
(PropertiesSE settings) FreeMarker のConfiguration.setSettings
メソッドに渡される既知の FreeMarker キーを含むプロパティを設定します。void
setFreemarkerVariables
(MapSE<StringSE, ObjectSE> variables) FreeMarker のConfiguration.setAllSharedVariables()
メソッドに渡される既知の FreeMarker オブジェクトを含むマップを設定します。void
setPostTemplateLoaders
(freemarker.cache.TemplateLoader... postTemplateLoaders) テンプレートの検索に使用されるTemplateLoader
のリストを設定します。void
setPreferFileSystemAccess
(boolean preferFileSystemAccess) テンプレートのロードにファイルシステムアクセスを優先するかどうかを設定します。void
setPreTemplateLoaders
(freemarker.cache.TemplateLoader... preTemplateLoaders) テンプレートの検索に使用されるTemplateLoader
のリストを設定します。void
setResourceLoader
(ResourceLoader resourceLoader) FreeMarker テンプレートファイルのロードに使用する Spring ResourceLoader を設定します。void
setTemplateLoaderPath
(StringSE templateLoaderPath) Spring リソースの場所を介して Freemarker テンプレートローダーのパスを設定します。void
setTemplateLoaderPaths
(StringSE... templateLoaderPaths) Spring リソースの場所を介して複数の Freemarker テンプレートローダーパスを設定します。
フィールドの詳細
logger
コンストラクターの詳細
FreeMarkerConfigurationFactory
public FreeMarkerConfigurationFactory()
メソッドの詳細
setConfigLocation
FreeMarker 構成ファイルの場所を設定します。または、すべての設定をローカルで指定できます。setFreemarkerSettings
FreeMarker のConfiguration.setSettings
メソッドに渡される既知の FreeMarker キーを含むプロパティを設定します。- 関連事項:
Configurable.setSettings(java.util.Properties)
setFreemarkerVariables
FreeMarker のConfiguration.setAllSharedVariables()
メソッドに渡される既知の FreeMarker オブジェクトを含むマップを設定します。- 関連事項:
Configuration.setAllSharedVariables(freemarker.template.TemplateHashModelEx)
setDefaultEncoding
FreeMarker 構成のデフォルトのエンコーディングを設定します。指定しない場合、FreeMarker はプラットフォームファイルエンコーディングを使用します。レンダリングプロセスに明示的なエンコーディングが指定されていない場合(Spring の FreeMarkerView など)を除き、テンプレートレンダリングに使用されます。
- 関連事項:
Configuration.setDefaultEncoding(java.lang.String)
FreeMarkerView.setEncoding(java.lang.String)
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
Spring リソースの場所を介して Freemarker テンプレートローダーパスを設定します。パス処理の詳細については、"templateLoaderPaths" プロパティを参照してください。setTemplateLoaderPaths
Spring リソースの場所を介して複数の Freemarker テンプレートローダーパスを設定します。文字列を介して入力された場合、ResourceEditor が理解しているように、"file:" や "classpath:" 疑似 URL などの標準 URL がサポートされます。ApplicationContext で実行するときに相対パスを許可します。
デフォルトの FreeMarker テンプレートローダーのパスを定義します。指定されたリソースを
java.io.File
に解決できない場合、変更の検出なしで汎用 SpringTemplateLoader が使用されます。SpringTemplateLoader の使用を強制するには、つまり、いかなる場合でもパスをファイルシステムリソースとして解決しないようにするには、"preferFileSystemAccess" フラグをオフにします。詳細については、後者の javadoc を参照してください。
TemplateLoaders の独自のリストを指定する場合は、このプロパティを設定せず、代わりに
setTemplateLoaders(List templateLoaders)
を使用してください- 関連事項:
ResourceEditor
ResourceLoader.getResource(java.lang.String)
Configuration.setDirectoryForTemplateLoading(java.io.File)
SpringTemplateLoader
setResourceLoader
FreeMarker テンプレートファイルのロードに使用する Spring ResourceLoader を設定します。デフォルトは DefaultResourceLoader です。コンテキストで実行している場合、ApplicationContext によってオーバーライドされます。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.TemplateExceptionFreeMarker 構成を準備して返送します。- 戻り値:
- 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
指定されたパスの FreeMarker TemplateLoader を決定します。デフォルトの実装では、FileTemplateLoader または SpringTemplateLoader が作成されます。
- パラメーター:
templateLoaderPath
- テンプレートをロードするパス- 戻り値:
- 適切な TemplateLoader
- 関連事項:
FileTemplateLoader
SpringTemplateLoader
postProcessTemplateLoaders
このファクトリがデフォルトのテンプレートローダーを作成した後、カスタム 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 の初期化エラー- 関連事項: