2014-10-27 1444 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

相關問題