美文网首页
thymeleaf邮件发送支持多种模版解决方式

thymeleaf邮件发送支持多种模版解决方式

作者: 越陌先生 | 来源:发表于2021-09-18 10:59 被阅读0次

前言

之前实现邮件发送使用的 模版是 路径classpath:/templates/的html文件


image.png

后来增加需要 是这些模版文件 需要自定义编辑 并保存到数据库表里
那这些模版文件内容就变成了 字符串 , 需要支持两个模版解决方式

解决方式

1 定义两个 TemplateResolver 为spring bean 分别为 字符串解析模版 StringTemplateResolver
和 spring 资源解析模版 SpringResourceTemplateResolver

@Configuration
public class StringTemplateEngineConfig {
    @Bean("stringTemplateResolver")
    public StringTemplateResolver getStringTemplateResolver(){
        StringTemplateResolver stringTemplateResolver = new StringTemplateResolver();
        stringTemplateResolver.setCacheable(true);
        stringTemplateResolver.setTemplateMode(TemplateMode.HTML);
        return stringTemplateResolver;
    }
    @Bean("springResourceTemplateResolver")
    public SpringResourceTemplateResolver getSpringResourceTemplateResolver(){
        SpringResourceTemplateResolver springResourceTemplateResolver = new SpringResourceTemplateResolver();
        springResourceTemplateResolver.setCacheable(true);
        springResourceTemplateResolver.setPrefix("classpath:/templates/");
        springResourceTemplateResolver.setSuffix(".html");
        springResourceTemplateResolver.setTemplateMode(TemplateMode.HTML);
        springResourceTemplateResolver.setApplicationContext(SpringContextHolder.getApplicationContext());
        return springResourceTemplateResolver;
    }
}

在邮件发送时候 类中引入

 @Autowired
   private SpringResourceTemplateResolver springResourceTemplateResolver;
    @Autowired
    private StringTemplateResolver stringTemplateResolver;

每次调用时候 设置解析方式

  templateEngine.setTemplateResolver(springResourceTemplateResolver);
    String emailContent = templateEngine.process(mailBo.getTemplatePath(),context);

相关文章

网友评论

      本文标题:thymeleaf邮件发送支持多种模版解决方式

      本文链接:https://www.haomeiwen.com/subject/oqiegltx.html