parent
90cf722365
commit
65684957ea
|
@ -31,6 +31,8 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
|||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration;
|
||||
import org.springframework.boot.bind.RelaxedPropertyResolver;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.context.EnvironmentAware;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
@ -53,6 +55,7 @@ import org.thymeleaf.templateresolver.TemplateResolver;
|
|||
*
|
||||
* @author Dave Syer
|
||||
* @author Andy Wilkinson
|
||||
* @author Stephane Nicoll
|
||||
*/
|
||||
@Configuration
|
||||
@ConditionalOnClass(SpringTemplateEngine.class)
|
||||
|
@ -64,27 +67,22 @@ public class ThymeleafAutoConfiguration {
|
|||
public static final String DEFAULT_SUFFIX = ".html";
|
||||
|
||||
@Configuration
|
||||
@EnableConfigurationProperties(ThymeleafProperties.class)
|
||||
@ConditionalOnMissingBean(name = "defaultTemplateResolver")
|
||||
public static class DefaultTemplateResolverConfiguration implements EnvironmentAware {
|
||||
public static class DefaultTemplateResolverConfiguration {
|
||||
|
||||
@Autowired
|
||||
private ThymeleafProperties properties;
|
||||
|
||||
@Autowired
|
||||
private final ResourceLoader resourceLoader = new DefaultResourceLoader();
|
||||
|
||||
private RelaxedPropertyResolver environment;
|
||||
|
||||
@Override
|
||||
public void setEnvironment(Environment environment) {
|
||||
this.environment = new RelaxedPropertyResolver(environment,
|
||||
"spring.thymeleaf.");
|
||||
}
|
||||
|
||||
@PostConstruct
|
||||
public void checkTemplateLocationExists() {
|
||||
Boolean checkTemplateLocation = this.environment.getProperty(
|
||||
"checkTemplateLocation", Boolean.class, true);
|
||||
Boolean checkTemplateLocation = this.properties.isCheckTemplateLocation();
|
||||
if (checkTemplateLocation) {
|
||||
Resource resource = this.resourceLoader.getResource(this.environment
|
||||
.getProperty("prefix", DEFAULT_PREFIX));
|
||||
Resource resource = this.resourceLoader.getResource(this.properties.getPrefix());
|
||||
Assert.state(resource.exists(), "Cannot find template location: "
|
||||
+ resource + " (please add some templates "
|
||||
+ "or check your Thymeleaf configuration)");
|
||||
|
@ -95,13 +93,11 @@ public class ThymeleafAutoConfiguration {
|
|||
public ITemplateResolver defaultTemplateResolver() {
|
||||
TemplateResolver resolver = new TemplateResolver();
|
||||
resolver.setResourceResolver(thymeleafResourceResolver());
|
||||
resolver.setPrefix(this.environment.getProperty("prefix", DEFAULT_PREFIX));
|
||||
resolver.setSuffix(this.environment.getProperty("suffix", DEFAULT_SUFFIX));
|
||||
resolver.setTemplateMode(this.environment.getProperty("mode", "HTML5"));
|
||||
resolver.setCharacterEncoding(this.environment.getProperty("encoding",
|
||||
"UTF-8"));
|
||||
resolver.setCacheable(this.environment.getProperty("cache", Boolean.class,
|
||||
true));
|
||||
resolver.setPrefix(this.properties.getPrefix());
|
||||
resolver.setSuffix(this.properties.getSuffix());
|
||||
resolver.setTemplateMode(this.properties.getMode());
|
||||
resolver.setCharacterEncoding(this.properties.getEncoding());
|
||||
resolver.setCacheable(this.properties.isCache());
|
||||
return resolver;
|
||||
}
|
||||
|
||||
|
@ -111,6 +107,70 @@ public class ThymeleafAutoConfiguration {
|
|||
}
|
||||
}
|
||||
|
||||
@ConfigurationProperties("spring.thymeleaf")
|
||||
public static class ThymeleafProperties {
|
||||
|
||||
private boolean checkTemplateLocation = true;
|
||||
|
||||
private String prefix = DEFAULT_PREFIX;
|
||||
|
||||
private String suffix = DEFAULT_SUFFIX;
|
||||
|
||||
private String mode = "HTML5";
|
||||
|
||||
private String encoding = "UTF-8";
|
||||
|
||||
private boolean cache = true;
|
||||
|
||||
public boolean isCheckTemplateLocation() {
|
||||
return checkTemplateLocation;
|
||||
}
|
||||
|
||||
public void setCheckTemplateLocation(boolean checkTemplateLocation) {
|
||||
this.checkTemplateLocation = checkTemplateLocation;
|
||||
}
|
||||
|
||||
public String getPrefix() {
|
||||
return prefix;
|
||||
}
|
||||
|
||||
public void setPrefix(String prefix) {
|
||||
this.prefix = prefix;
|
||||
}
|
||||
|
||||
public String getSuffix() {
|
||||
return suffix;
|
||||
}
|
||||
|
||||
public void setSuffix(String suffix) {
|
||||
this.suffix = suffix;
|
||||
}
|
||||
|
||||
public String getMode() {
|
||||
return mode;
|
||||
}
|
||||
|
||||
public void setMode(String mode) {
|
||||
this.mode = mode;
|
||||
}
|
||||
|
||||
public String getEncoding() {
|
||||
return encoding;
|
||||
}
|
||||
|
||||
public void setEncoding(String encoding) {
|
||||
this.encoding = encoding;
|
||||
}
|
||||
|
||||
public boolean isCache() {
|
||||
return cache;
|
||||
}
|
||||
|
||||
public void setCache(boolean cache) {
|
||||
this.cache = cache;
|
||||
}
|
||||
}
|
||||
|
||||
@Configuration
|
||||
@ConditionalOnMissingBean(SpringTemplateEngine.class)
|
||||
protected static class ThymeleafDefaultConfiguration {
|
||||
|
|
Loading…
Reference in New Issue