public class FreeMarkerConfigurationFactory extends ObjectSE
オプションの "configLocation" プロパティは、現在のアプリケーション内の FreeMarker プロパティファイルの場所を設定します。FreeMarker プロパティは、"freemarkerSettings" を介してオーバーライドできます。これらのプロパティはすべて、FreeMarker の Configuration.setSettings()
メソッドを呼び出すことによって設定され、FreeMarker によって設定された制約の対象となります。
"freemarkerVariables" プロパティは、setAllSharedVariables()
メソッドを介して構成に適用される共有変数のマップを指定するために使用できます。setSettings()
と同様に、これらのエントリは FreeMarker 制約の対象となります。
このクラスを使用する最も簡単な方法は、"templateLoaderPath" を指定することです。その場合、FreeMarker ではそれ以上の構成は必要ありません。
メモ: Spring の FreeMarker サポートには FreeMarker 2.3 以上が必要です。
setConfigLocation(org.springframework.core.io.Resource)
, setFreemarkerSettings(java.util.Properties)
, setFreemarkerVariables(java.util.Map<java.lang.String, java.lang.Object>)
, setTemplateLoaderPath(java.lang.String)
, createConfiguration()
, FreeMarkerConfigurationFactoryBean
, FreeMarkerConfigurer
, Configuration
コンストラクターと説明 |
---|
FreeMarkerConfigurationFactory() |
修飾子と型 | メソッドと説明 |
---|---|
freemarker.template.Configuration | createConfiguration() FreeMarker 構成を準備して返送します。 |
protected freemarker.cache.TemplateLoader | getAggregateTemplateLoader(ListSE<freemarker.cache.TemplateLoader> templateLoaders) 指定された TemplateLoader リストに基づいて TemplateLoader を返します。 |
protected ResourceLoader | getResourceLoader() FreeMarker テンプレートファイルのロードに使用する Spring ResourceLoader を返します。 |
protected freemarker.cache.TemplateLoader | getTemplateLoaderForPath(StringSE templateLoaderPath) 指定されたパスの FreeMarker TemplateLoader を決定します。 |
protected boolean | isPreferFileSystemAccess() テンプレートのロードにファイルシステムアクセスを優先するかどうかを返します。 |
protected freemarker.template.Configuration | newConfiguration() 新しい 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 テンプレートローダーパスを設定します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
protected final Log logger
public void setConfigLocation(Resource resource)
public void setFreemarkerSettings(PropertiesSE settings)
Configuration.setSettings
メソッドに渡される既知の FreeMarker キーを含むプロパティを設定します。Configurable.setSettings(java.util.Properties)
public void setFreemarkerVariables(MapSE<StringSE,ObjectSE> variables)
Configuration.setAllSharedVariables()
メソッドに渡される既知の FreeMarker オブジェクトを含むマップを設定します。Configuration.setAllSharedVariables(freemarker.template.TemplateHashModelEx)
public void setDefaultEncoding(StringSE defaultEncoding)
レンダリングプロセスに明示的なエンコーディングが指定されていない場合(Spring の FreeMarkerView など)を除き、テンプレートレンダリングに使用されます。
Configuration.setDefaultEncoding(java.lang.String)
, FreeMarkerView.setEncoding(java.lang.String)
public void setPreTemplateLoaders(freemarker.cache.TemplateLoader... preTemplateLoaders)
TemplateLoader
のリストを設定します。例: データベースローダーなどの 1 つ以上のカスタムローダーを設定して、ここに挿入できます。 ここで指定された TemplateLoaders
は、このファクトリが登録するデフォルトのテンプレートローダー (指定された "templateLoaderPaths" のローダーや postProcessTemplateLoaders(java.util.List<freemarker.cache.TemplateLoader>)
に登録されているローダーなど) の前に登録されます。
public void setPostTemplateLoaders(freemarker.cache.TemplateLoader... postTemplateLoaders)
TemplateLoader
のリストを設定します。例: データベースローダーなどの 1 つ以上のカスタムローダーを構成できます。 ここで指定された TemplateLoaders
は、このファクトリが登録するデフォルトのテンプレートローダー (指定された "templateLoaderPaths" のローダーや postProcessTemplateLoaders(java.util.List<freemarker.cache.TemplateLoader>)
に登録されているローダーなど) の後に登録されます。
public void setTemplateLoaderPath(StringSE templateLoaderPath)
public void setTemplateLoaderPaths(StringSE... templateLoaderPaths)
文字列を介して入力された場合、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
public void setResourceLoader(ResourceLoader resourceLoader)
protected ResourceLoader getResourceLoader()
public void setPreferFileSystemAccess(boolean preferFileSystemAccess)
これが有効になっている場合、FreeMarkerConfigurationFactory は指定された "templateLoaderPath" をファイルシステムリソースとして解決しようとします (これは、拡張クラスパスリソースと ServletContext リソースでも機能します)。
デフォルトは "true" です。これをオフにすると、常に SpringTemplateLoader 経由で(つまり、テンプレートの変更をホット検出せずにストリームとして)読み込まれます。これは、一部のテンプレートが展開されたクラスディレクトリにあり、他のテンプレートが jar ファイルにある場合に必要になることがあります。
protected boolean isPreferFileSystemAccess()
public freemarker.template.Configuration createConfiguration() throws IOExceptionSE, freemarker.template.TemplateException
IOExceptionSE
- 設定ファイルが見つからなかった場合 freemarker.template.TemplateException
- FreeMarker の初期化エラー protected freemarker.template.Configuration newConfiguration() throws IOExceptionSE, freemarker.template.TemplateException
createConfiguration()
によって呼び出されます。
IOExceptionSE
- 設定ファイルが見つからなかった場合 freemarker.template.TemplateException
- FreeMarker の初期化エラー createConfiguration()
protected freemarker.cache.TemplateLoader getTemplateLoaderForPath(StringSE templateLoaderPath)
デフォルトの実装では、FileTemplateLoader または SpringTemplateLoader が作成されます。
templateLoaderPath
- テンプレートをロードするパス FileTemplateLoader
, SpringTemplateLoader
protected void postProcessTemplateLoaders(ListSE<freemarker.cache.TemplateLoader> templateLoaders)
createConfiguration()
によって呼び出されます。指定された "postTemplateLoaders" は、このコールバックによって登録されたすべてのローダーの後に登録されることに注意してください。その結果、それらは指定されたリストに含まれません。
templateLoaders
- サブクラスによって変更される TemplateLoader インスタンスの現在のリスト createConfiguration()
, setPostTemplateLoaders(freemarker.cache.TemplateLoader...)
@Nullable protected freemarker.cache.TemplateLoader getAggregateTemplateLoader(ListSE<freemarker.cache.TemplateLoader> templateLoaders)
templateLoaders
- TemplateLoader インスタンスの最終リスト protected void postProcessConfiguration(freemarker.template.Configuration config) throws IOExceptionSE, freemarker.template.TemplateException
createConfiguration()
によって呼び出されます。
config
- 現在の構成オブジェクト IOExceptionSE
- 設定ファイルが見つからなかった場合 freemarker.template.TemplateException
- FreeMarker の初期化エラー createConfiguration()