org.springframework.web.reactive.result.view.freemarker

## Class FreeMarkerConfigurer

- java.lang.Object
- - org.springframework.ui.freemarker.FreeMarkerConfigurationFactory
  - - org.springframework.web.reactive.result.view.freemarker.FreeMarkerConfigurer

All Implemented Interfaces:
  org.springframework.beans.factory.Aware, org.springframework.beans.factory.InitializingBean, org.springframework.context.ResourceLoaderAware, FreeMarkerConfig

    public class FreeMarkerConfigurer
    extends org.springframework.ui.freemarker.FreeMarkerConfigurationFactory
    implements FreeMarkerConfig, org.springframework.beans.factory.InitializingBean, org.springframework.context.ResourceLoaderAware

Configures FreeMarker for web usage via the "configLocation" and/or "freemarkerSettings" and/or "templateLoaderPath" properties. The simplest way to use this class is to specify just a "templateLoaderPath" (e.g. "classpath:templates"); you do not need any further configuration then.

This bean must be included in the application context of any application using `FreeMarkerView`. It exists purely to configure FreeMarker. It is not meant to be referenced by application components but just internally by `FreeMarkerView`. Implements `FreeMarkerConfig` to be found by `FreeMarkerView` without depending on the bean name of the configurer.

Note that you can also refer to a pre-configured FreeMarker Configuration instance via the "configuration" property. This allows to share a FreeMarker Configuration for web and email usage for example.

This configurer registers a template loader for this package, allowing to reference the "spring.ftl" macro library contained in this package:

     <#import "/spring.ftl" as spring/>
     <@spring.bind "person.age"/>
     age is ${spring.status.value}

Note: Spring's FreeMarker support requires FreeMarker 2.3 or higher.

Since:
  5.0
Author:
  Rossen Stoyanchev

### Field Summary

### Fields inherited from class org.springframework.ui.freemarker.FreeMarkerConfigurationFactory

`logger`

### Constructor Summary

Constructors
Constructor and Description
`FreeMarkerConfigurer()`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `afterPropertiesSet()` Initialize FreeMarkerConfigurationFactory's Configuration if not overridden by a pre-configured FreeMarker Configuration.
`freemarker.template.Configuration` `getConfiguration()` Return the Configuration object wrapped by this bean.
`protected void` `postProcessTemplateLoaders(List<freemarker.cache.TemplateLoader> templateLoaders)` This implementation registers an additional ClassTemplateLoader for the Spring-provided macros, added to the end of the list.
`void` `setConfiguration(freemarker.template.Configuration configuration)` Set a pre-configured Configuration to use for the FreeMarker web config, e.g.

### Methods inherited from class org.springframework.ui.freemarker.FreeMarkerConfigurationFactory

`createConfiguration, getAggregateTemplateLoader, getResourceLoader, getTemplateLoaderForPath, isPreferFileSystemAccess, newConfiguration, postProcessConfiguration, setConfigLocation, setDefaultEncoding, setFreemarkerSettings, setFreemarkerVariables, setPostTemplateLoaders, setPreferFileSystemAccess, setPreTemplateLoaders, setResourceLoader, setTemplateLoaderPath, setTemplateLoaderPaths`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.springframework.context.ResourceLoaderAware

`setResourceLoader`

### Constructor Detail

#### FreeMarkerConfigurer

    public FreeMarkerConfigurer()

### Method Detail

#### setConfiguration

    public void setConfiguration(freemarker.template.Configuration configuration)

Set a pre-configured Configuration to use for the FreeMarker web config, e.g. a shared one for web and email usage. If this is not set, FreeMarkerConfigurationFactory's properties (inherited by this class) have to be specified.

#### afterPropertiesSet

    public void afterPropertiesSet()
                            throws IOException,
                                   freemarker.template.TemplateException

Initialize FreeMarkerConfigurationFactory's Configuration if not overridden by a pre-configured FreeMarker Configuration.

Sets up a ClassTemplateLoader to use for loading Spring macros.

Specified by:
  `afterPropertiesSet` in interface `org.springframework.beans.factory.InitializingBean`
Throws:
  `IOException`
  `freemarker.template.TemplateException`
See Also:
  `FreeMarkerConfigurationFactory.createConfiguration()`, `setConfiguration(freemarker.template.Configuration)`

#### postProcessTemplateLoaders

    protected void postProcessTemplateLoaders(List<freemarker.cache.TemplateLoader> templateLoaders)

This implementation registers an additional ClassTemplateLoader for the Spring-provided macros, added to the end of the list.

Overrides:
  `postProcessTemplateLoaders` in class `org.springframework.ui.freemarker.FreeMarkerConfigurationFactory`

#### getConfiguration

    public freemarker.template.Configuration getConfiguration()

Return the Configuration object wrapped by this bean.

Specified by:
  `getConfiguration` in interface `FreeMarkerConfig`
Returns:
  the FreeMarker Configuration