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
Template
instances.
An application typically should use only a single shared
Configuration
instance. More precisely, typically
you should have one Configuration
instance per
independently developed components (like projects, modules, etc.) that
internally use FreeMarker, as each should create its own
instance.
As running templates are influenced by the configuration
settings, each Template
instance has a
Configuration
instance associated with it, via the
corresponding Template
constructor parameter.
Usually you obtain Template
instances with
Configuration.getTemplate
(not by directly calling
the Template
constructor), in which case the
associated Configuration
instance will be the one
whose getTemplate
method has been called.