【发布时间】:2017-11-01 12:52:32
【问题描述】:
我可以将 spring-boot 与 freemarker 一起使用,但我需要在运行时创建模板,从 db 加载,我只能使用控制器中的 return 找到示例
【问题讨论】:
标签: freemarker
我可以将 spring-boot 与 freemarker 一起使用,但我需要在运行时创建模板,从 db 加载,我只能使用控制器中的 return 找到示例
【问题讨论】:
标签: freemarker
至少如果你不需要 Spring MVC (spring-web) 功能,你可以直接使用 FreeMarker API。您将需要一个 freemarker.template.Configuration 单例 bean(也许 Spring 为 Spring MVC 创建的那个就足够了,但创建自己的可能更干净),然后您可以使用 new Template(null, someString, cfg).process(dataModel, outputWriter)。如果性能是一个问题,您当然可能希望缓存生成的 Template 对象。
还请注意,如果您提供这样的TemplateLoader 实现,FreeMarker 可以直接从数据库加载模板(在这种情况下,您将使用Configuration.getTemplate(templateName) 来获取Template 对象)。这样做的好处是,数据库中的模板可以是 #import-ed/#include-ed,而且 FreeMarker 会为您缓存 Template 对象。当然,如果你在 Spring MVC 中需要这个,那么你可以像往常一样在 Spring MVC 中做事,你不需要“内联模板”。
【讨论】: