First of all, be sure you have read the Getting Started chapter.
A configuration is a
freemarker.template.Configuration object that stores your common (global, application level) settings and defines variables that you want to be available in all templates (so called shared variables). Also, it deals with the creation and caching of
An application typically uses only a single shared
Configuration instance. More precisely, typically you have one
Configuration instance per independently developed component that internally uses FreeMarker, so they can be configured independently of each other. For example, your e-mail sender component and your report generator component (service) probably want to use their own
Configuration-s, as their needs differ.
As the behavior of templates depends on the configuration settings, each
Template instance has an associated
Configuration instance. If you obtain the
Template instances with
Configuration.getTemplate, the associated
Configuration instance will be the one whose
getTemplate method was called. If you create the
Template instances directly with the
Template constructor, the
Configuration should be specified as constructor parameter.