一尘不染

Spring Boot中Thymeleaf的几个模板位置

spring-boot

当前,使用属性Spring BootThymeleaf模板位置允许一个值spring.thymeleaf.prefix

默认值为classpath:/templates/

我想在jar外面有一个百里香模板的位置(但要保留默认位置),例如:

spring.thymeleaf.prefix = classpath:/templates/, file:/resources/templates

是否需要为我想要的新位置定义另一个模板解析器?


阅读 1474

收藏
2020-05-30

共1个答案

一尘不染

在application.properties文件中定义以下设置

spring.thymeleaf.templateResolverOrder=1

现在在您的自定义Bean中创建ITemplateResolver并将order和前缀和后缀设置为0,这样spring boot会监听两个地方

将顺序设置为0很重要

可以创建Bean的示例

@Bean
    public ClassLoaderTemplateResolver emailTemplateResolver() {
        ClassLoaderTemplateResolver emailTemplateResolver = new ClassLoaderTemplateResolver();
        emailTemplateResolver.setPrefix("mails/");
        emailTemplateResolver.setSuffix(".html");
        emailTemplateResolver.setTemplateMode(TemplateMode.HTML);
        emailTemplateResolver.setCharacterEncoding("UTF-8");
        emailTemplateResolver.setOrder(0);
        emailTemplateResolver.setCheckExistence(true);

        return emailTemplateResolver;
    }

我的例子

2020-05-30