Я не использую для настройки freemarker с xml конфигурациями, но с @Configuration
аннотированными классами; потому что я предпочитаю стиль Spring-Boot´. Таким образом, вы можете отключить кеш freemarker следующим образом:
@Bean
public FreeMarkerConfigurer freeMarkerConfigurer() throws IOException, TemplateException
{
FreeMarkerConfigurer configurer = new FreeMarkerConfigurer()
{
@Override
protected void postProcessConfiguration(freemarker.template.Configuration config) throws IOException, TemplateException
{
ClassTemplateLoader classTplLoader = new ClassTemplateLoader(context.getClassLoader(), "/templates");
ClassTemplateLoader baseMvcTplLoader = new ClassTemplateLoader(FreeMarkerConfigurer.class, ""); //TODO tratar de acceder a spring.ftl de forma directa
MultiTemplateLoader mtl = new MultiTemplateLoader(new TemplateLoader[]
{
classTplLoader,
baseMvcTplLoader
});
config.setTemplateLoader(mtl);
config.setCacheStorage(new NullCacheStorage());
}
};
configurer.setDefaultEncoding("UTF-8");
configurer.setPreferFileSystemAccess(false);
return configurer;
}
Ключ находится в:
config.setCacheStorage (new NullCacheStorage ());
Но вы также можете использовать эту инструкцию вместо:
config.setTemplateUpdateDelayMilliseconds(0);
Это должно сработать для вас.