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 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.
