Spring-boot:在Web应用程序中配置FreeMarkerConfigurationFactoryBean

时间:2015-03-18 13:52:57

标签: spring spring-boot

我试图在网络应用程序中使用Freemarker进行电子邮件模板化。

我已声明FreeMarkerConfigurationFactoryBean如下:

@Bean
public FreeMarkerConfigurationFactoryBean freeMarkerConfigurationFactoryBean(EmailTemplateService templateService) {
    FreeMarkerConfigurationFactoryBean configurationFactoryBean = new FreeMarkerConfigurationFactoryBean();
    configurationFactoryBean.setPreTemplateLoaders(templateService);
    return configurationFactoryBean;
}

在运行我的JUnit时,一切运行良好,但在我的webapp中运行时,我的bean是"覆盖"通过春季启动FreeMarkerAutoConfiguration。

我试过:

  1. 从我的gradle文件中删除spring-boot-starter-freemarker
  2. @EnableAutoConfiguration(exclude = {FreeMarkerAutoConfigurationk.class})
  3. spring.freemarker.enabled =假
  4. 但没有成功。有什么想法吗?

    谢谢你们。

1 个答案:

答案 0 :(得分:0)

由于您的应用程序是一个Web应用程序,它是您感兴趣的Spring Boot FreeMarkerWebConfiguration。它不使用FreeMarkerConfigurationFactoryBean但是一个FreeMarkerConfigurer。您应该创建一个FreeMarkerConfigurer bean并根据需要进行配置。例如:

@Bean
public FreeMarkerConfigurer freeMarkerConfigurer(EmailTemplateService templateService) {
    FreeMarkerConfigurer configurer = new FreeMarkerConfigurer();
    configurer.setPreTemplateLoaders(templateService);
    return configurer;
}