使用Spring将文本文件直接注入String

所以我有这个

@Value("classpath:choice-test.html") private Resource sampleHtml; private String sampleHtmlData; @Before public void readFile() throws IOException { sampleHtmlData = IOUtils.toString(sampleHtml.getInputStream()); } 

我想知道的是,是否可以不使用readFile()方法并将sampleHtmlData注入文件的内容。 如果不是,我只需要忍受这个,但这将是一个很好的捷径。

从技术上讲,你可以用XML和工厂bean和方法的笨拙组合来做到这一点。 但是,为什么要使用Java配置呢?

 @Configuration public class Spring { @Value("classpath:choice-test.html") private Resource sampleHtml; @Bean public String sampleHtmlData() { try(InputStream is = sampleHtml.getInputStream()) { return IOUtils.toString(is); } } } 

请注意,我还使用try-with-resources惯用法关闭从sampleHtml.getInputStream()返回的流。 否则你会得到内存泄漏。

据我所知,这没有内置function,但你可以自己做,例如:

        

其中readContent()返回一个String,该字符串从path / to / my_file中的文件读取。