Apply spring.thymeleaf.cache to auto-configured ThymeleafViewResolver

Previously, spring.thymeleaf.cache was only applied to auto-configured
TemplateResolver. This commit also applies the propery to the
auto-configured ThymeleafViewResolver.

Closes gh-5395
This commit is contained in:
Andy Wilkinson 2016-04-18 17:26:13 +01:00
parent 9210029109
commit a4d7a77547
2 changed files with 14 additions and 0 deletions

View File

@ -216,6 +216,7 @@ public class ThymeleafAutoConfiguration {
// This resolver acts as a fallback resolver (e.g. like a // This resolver acts as a fallback resolver (e.g. like a
// InternalResourceViewResolver) so it needs to have low precedence // InternalResourceViewResolver) so it needs to have low precedence
resolver.setOrder(Ordered.LOWEST_PRECEDENCE - 5); resolver.setOrder(Ordered.LOWEST_PRECEDENCE - 5);
resolver.setCache(this.properties.isCache());
return resolver; return resolver;
} }

View File

@ -238,6 +238,19 @@ public class ThymeleafAutoConfigurationTests {
is(instanceOf(GroupingStrategy.class))); is(instanceOf(GroupingStrategy.class)));
} }
@Test
public void cachingCanBeDisabled() {
this.context.register(ThymeleafAutoConfiguration.class,
PropertyPlaceholderAutoConfiguration.class);
EnvironmentTestUtils.addEnvironment(this.context, "spring.thymeleaf.cache:false");
this.context.refresh();
assertThat(this.context.getBean(ThymeleafViewResolver.class).isCache(),
is(false));
TemplateResolver templateResolver = this.context.getBean(TemplateResolver.class);
templateResolver.initialize();
assertThat(templateResolver.isCacheable(), is(false));
}
@Configuration @Configuration
@ImportAutoConfiguration({ ThymeleafAutoConfiguration.class, @ImportAutoConfiguration({ ThymeleafAutoConfiguration.class,
PropertyPlaceholderAutoConfiguration.class }) PropertyPlaceholderAutoConfiguration.class })