我有一个模板pdf,它存储在物理路径或应用程序类路径中。我必须阅读此模板,并根据用户对每个请求的输入填写每个请求的字段。我想将此文件转换为字节,并在应用程序启动期间将其存储在Configuration bean中,而不是每次都读取模板文件。为此,我可以在Spring中使用ByteArrayResource或其他更好的方法。
我的目标不是每次都读取模板文件。
答案 0 :(得分:1)
是的,如果需要经常缓存模板字节数组,绝对是个好主意。但是请注意,这将通过文件大小增加内存使用量。
使用spring的 ByteArrayResource 可能是一种很好的方法,具体取决于您用于处理模板的内容。 ByteArrayResource 的 getInputStream()方法将始终为您提供新鲜的 ByteArrayInputStream
您可以为ByteArrayResource bean提供如下内容:
@Bean
public ByteArrayResource infomailTemplate(@Value("classpath:infomail-template.html") Resource template) throws IOException {
byte[] templateContent = org.springframework.util.FileCopyUtils.copyToByteArray(template.getFile());
return new ByteArrayResource(templateContent);
}
,然后只需 autowire ,然后在您喜欢的任何地方,就像这样:
@Autowired
private ByteArrayResource infomailTemplate