如何在 thymeleaf 上下文中读取 blob 格式文件

How to read blob format file in thymleaf context

我想将 thymleaf 模板存储到数据库而不是文件系统中。

因为如果我存储到文件系统中,如果我们需要 运行 多个应用程序节点来跨服务器分配负载,这将是一个主要问题。模板不应该很大,这样很容易将它们存储在数据库中。

到目前为止,我使用

这样的代码通过上下文中的预定义路径读取文件
FileTemplateResolver resolver = new FileTemplateResolver();
String filePath = env.getProperty("external.notification.template.dir");
resolver.setPrefix(filePath);
resolver.setSuffix(".html");
resolver.setTemplateMode("HTML5");
resolver.setOrder(templateEngine.getTemplateResolvers().size());
resolver.setCacheable(false);
templateEngine.addTemplateResolver(resolver);

可以使用 blob 创建临时文件并从同一位置读取。但是可能有好的方法可用。

任何人都知道读取 blob 数据的配置。

有没有使用 thymleaf 上下文读取 blob 格式文件的方法?

我创建了扩展 TemplateResolverDbTemplateResolver class。它有内部 class,有一个数据库调用,可以从表格中获取图像数据。

private class DbResourceResolver implements IResourceResolver {

        @Override
        public InputStream getResourceAsStream(TemplateProcessingParameters params, String resourceName) {

            NotificationTemplate template = templateService.getNotificationTemplateByName(resourceName);
            if (template != null) {
                return new ByteArrayInputStream(template.getFileData());
            }
            return null;
        }

        @Override
        public String getName() {
            return "dbResourceResolver";
        }
    }

这将在进程方法调用时调用。

mergedMessage = templateEngine.process(fileName, ctx);