No uso para configurar freemarker con xml configuraciones pero con @Configuration
clases anotadas; porque prefiero el estilo Spring-Boot'.Así puede desactivar la caché freemarker's así:
@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;
}
La clave está en:
config.setCacheStorage (nueva NullCacheStorage());
Pero también se puede utilizar esta instrucción en su lugar:
config.setTemplateUpdateDelayMilliseconds(0);
Se debe trabajar para usted.
¿Algún ejemplo sobre cómo configurar NullCacheStorage usando solo configuración? –