在 Spring Boot 2 的 Freemarker 中使自定义 TemplateMethodModels 可用

Make custom TemplateMethodModels available in Freemarker for Spring Boot 2

我在我的 Spring Boot 2 项目中为我的 Freemarker 模板创建了几个 freemarker.template.TemplateMethodModelEx 的实现。目前,为了在我的视图中使用它们,我需要将它们添加到每个 WebMVC 控制器中的模型(Freemarker 术语中的“哈希”)。

我希望有一种方法可以让它们在我项目的每个视图中可用,而不必在每个控制器中扩展模型。

FreeMarker 具有通过 Configuration.setSharedVariable(String, Object) API 在 Configuration 单例级别添加顶级变量的功能。显然,Spring FreeMarkerConfigurationFactory 在 属性 名称下公开了 "freemarkerVariables":https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/ui/freemarker/FreeMarkerConfigurationFactory.html#setFreemarkerVariables-java.util.Map-