如何禁用Spring Boot对Apache Velocity的自动配置?

9

我正在尝试使用Spring Boot(1.1.9.RELEASE)和Apache Velocity(1.7)来生成电子邮件的模板。对于Web模板,我使用Thymeleaf(2.1.3.RELEASE)。

Spring Boot的自动配置在启动时检测到类路径上的Velocity并将其添加为Web视图解析器。虽然这很棒,但这不是我想要的,所以我尝试了

@EnableAutoConfiguration(exclude = {VelocityAutoConfiguration.class})
public class Application {

不过,当应用程序启动时,我仍然会得到一个velocityViewResolver bean。您有什么想法可以禁用此自动配置吗?

提前感谢您的回复。


1
应该就这样了。如果你想要 velocity 的配置,但是不需要视图解析器,可以定义一个名为 "velocityViewResolver" 的自己的 bean(我相信用户指南中有提到)。 - Dave Syer
我在1.1.9版本中也遇到了类似的问题。除了排除之外,我还添加了spring.velocity.checkTemplateLocation=false,这样它就不会再抱怨找不到index.vm了。也许这个问题已经在1.2(RC)中得到解决,因为我现在正在测试它,而且我发现只有排除就可以解决问题。 - hoserdude
谢谢你们两位确认我没有走错路线 :) - Don'tWantTo
是否可以仅禁用WebappResourceLoader?我有一个“常规”的JSP视图解析器,它可以正常工作,而我需要Velocity用于电子邮件,因此我只想禁用Velocity查找Web资源。 - yglodt
1个回答

9

使用Spring Boot 1.2.5版本,禁用主应用程序类上的自动配置似乎已足够:

@SpringBootApplication
@EnableAutoConfiguration(exclude = { VelocityAutoConfiguration.class })

编辑 我不确定从什么时候开始生效,但现在(Spring Boot 1.3.2)你也可以设置:

spring.velocity.enabled=false

在application.properties文件中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接