Да, это определенно хорошая идея - кэшировать байтовый массив шаблона, если вам это нужно часто. Но имейте в виду, что это увеличит использование вашей памяти на размер файла.
Использование Spring's ByteArrayResource может быть хорошим подходом для этого, в зависимости от того, что вы используете для обработки шаблона. ByteArrayResource * getInputStream () метод всегда даст вам новый ByteArrayInputStream
Вы можете предоставить bean-компоненту ByteArrayResource такое содержимое:
@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