Spring JavaConfig 表示法中的 freemarker 外部加载程序路径

Spring freemarker external loader path in JavaConfig notation

我看到很多关于如何在 application.properties 文件中设置模板加载器路径的帖子,但我想在我的 Java 代码中进行设置。我有这个:

@Autowired
FreeMarkerConfiguration freeMarkerConfiguration;

@Bean 
public FreeMarkerViewResolver freemarkerViewResolver() { 
    FreeMarkerViewResolver resolver = new FreeMarkerViewResolver(); 
    resolver.setCache(true); 
    resolver.setPrefix(freeMarkerConfiguration.getPrefix()); 
    resolver.setSuffix(freeMarkerConfiguration.getSuffix()); 
    return resolver; 
}

@Bean 
public FreeMarkerConfigurer freemarkerConfig() { 
    FreeMarkerConfigurer freeMarkerConfigurer = new FreeMarkerConfigurer(); 
    freeMarkerConfigurer.setTemplateLoaderPath("/WEB-INF/views/ftl/");
    return freeMarkerConfigurer; 
}

所以我想要的是在 setTemplateLoaderPath 中放入什么或自定义 FreeMarkerConfigurer 的示例。此路径将在 war 之外,因此它需要像 File:/opt/share/templates/... 等....

比我想象的要简单。您只需将 "file:" 放在前面即可。这非常有效:

@Bean 
public FreeMarkerConfigurer freemarkerConfig() { 
  FreeMarkerConfigurer freeMarkerConfigurer = new FreeMarkerConfigurer(); 
  freeMarkerConfigurer.setTemplateLoaderPath("file:/opt/data/project/resources/freemarker/);
  return freeMarkerConfigurer; 
}