Я хотел бы хранить свои шаблоны FreeMarker в таблице базы данных, которая выглядит примерно так:
template_name | template_content
---------------------------------
hello |Hello ${user}
goodbye |So long ${user}
При получении запроса на шаблон с конкретным именем это должно привести к выполнению запроса, который загружает соответствующий контент шаблона. Содержимое этого шаблона вместе с моделью данных (значение переменной 'user' в приведенных выше примерах) затем следует передать FreeMarker.
Однако FreeMarker API, похоже, предполагает, что каждое имя шаблона соответствует файлу с тем же именем в определенном каталоге файловой системы. Можно ли как-нибудь легко загрузить свои шаблоны из БД вместо файловой системы?
ОБНОВЛЕНИЕ: Я должен был упомянуть, что я хотел бы иметь возможность добавлять шаблоны в базу данных во время работы приложения, поэтому я не могу просто загрузить все шаблоны при запуске в новый StringTemplateLoader (как предложено ниже).