【问题标题】:How do I specify multiple templateLoaderPaths for Freemarker in Spring Boot?如何在 Spring Boot 中为 Freemarker 指定多个 templateLoaderPaths?
【发布时间】:2014-10-27 13:58:41
【问题描述】:

我需要在 Spring Boot Web 应用程序中为 FreeMarker 指定多个模板加载器路径,但 FreeMarkerAutoConfigurationClass 只允许我使用 spring.freemarker.templateLoaderPath 属性指定一个路径,该属性使用 FreeMarkerConfigurationFactory 中的 setTemplateLoaderPath 方法。但是,这个类允许我使用setTemplateLoaderPaths 方法设置多个路径。覆盖此自动配置类并指定多个加载器路径的最佳方法是什么?我不太了解 Spring Java 配置类,在编写我需要的代码之前我想要一个示例。我正在使用 Spring Boot 1.1.2。提前致谢。

【问题讨论】:

    标签: java spring-mvc spring-boot freemarker


    【解决方案1】:

    您需要提供您自己的 org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer 类型的 bean 以及所需的配置。为此,请在应用程序的 Java 配置类之一中添加类似于以下内容的内容:

    @Bean
    public FreeMarkerConfigurer freeMarkerConfigurer() {
        FreeMarkerConfigurer configurer = new FreeMarkerConfigurer();
        configurer.setTemplateLoaderPaths("one", "two", "three");
    
        // Apply further configuration as needed
    
        return configurer;
    }
    

    更新:最新的 Spring Boot 1.2 快照现在接受以逗号分隔的 spring.freemarker.templateLoaderPath 属性列表,允许您在不声明自定义 FreeMarkerConfigurer bean 的情况下指定多个路径。

    【讨论】:

    • 我相信逗号分隔的路径列表仅适用于templateLoaderPaths 属性(注意末尾的“s”),不适用于templateLoaderPath
    • @ddekany 该属性是单数的。这是它的设置器:github.com/spring-projects/spring-boot/blob/v1.3.3.RELEASE/…
    • 你说得对,FreeMarkerConfigurer 有单数和复数两种属性。
    猜你喜欢
    • 2015-09-24
    • 2016-07-10
    • 2020-08-05
    • 2018-04-10
    • 2019-06-25
    • 2021-11-27
    • 1970-01-01
    • 2020-12-27
    • 1970-01-01
    相关资源
    最近更新 更多