所以我有这个
@Value("classpath:choice-test.html")
private Resource sampleHtml;
private String sampleHtmlData;
@Before
public void readFile() throws IOException {
sampleHtmlData = IOUtils.toString(sampleHtml.getInputStream());
}
我想知道的是,是否可以不使用 readFile() 方法并让 sampleHtmlData 注入(inject)文件的内容。如果不是,我只能忍受这个,但这将是一个不错的捷径。
最佳答案
从技术上讲,您可以使用 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, StandardCharsets.UTF_8);
}
}
}
请注意,我还使用 try-with-resources 习语关闭了从 sampleHtml.getInputStream()
返回的流。否则你会得到内存泄漏。
https://stackoverflow.com/questions/13739823/
相关文章:
java - Spring 的 JdbcTemplate 和事务
spring - 是否可以在表单 :select/form:option 的 itemLabel 中
mysql - spring jpa application.properties useSSL
json - Spring REST 服务 : retrieving JSON from Reque
java - Spring Redis - 从 application.properties 文件中
java - 通过 Spring 将字段注入(inject) Hibernate 加载的实体中
performance - ORM 解决方案(JPA;Hibernate)与 JDBC