2014-10-27 1437 views
1

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

回答

2

您需要提供您所需配置的org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer类型的豆子。要做到这一点,添加类似于以下到您的应用程序的Java配置类的东西一个:

@Bean 
public FreeMarkerConfigurer freeMarkerConfigurer() { 
    FreeMarkerConfigurer configurer = new FreeMarkerConfigurer(); 
    configurer.setTemplateLoaderPaths("one", "two", "three"); 

    // Apply further configuration as needed 

    return configurer; 
} 

更新:最新的Spring引导1.2快照现在接受的spring.freemarker.templateLoaderPath一个逗号分隔的列表属性,允许您指定多个路径而无需声明自定义的FreeMarkerConfigurer bean。

+0

我相信逗号分隔的路径列表只适用于'templateLoaderPaths'属性(注意末尾的“s”),而不是'templateLoaderPath'。 – ddekany 2016-04-18 23:20:12

+0

@ddekany该属性是单数。下面是它的设置器:https://github.com/spring-projects/spring-boot/blob/v1.3.3.RELEASE/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/ freemarker/FreeMarkerProperties.java#L81 – 2016-04-19 05:34:50

+0

你是对的,它是'FreeMarkerConfigurer',它具有单数和复数属性。 – ddekany 2016-04-19 19:07:15

相关问题