问题
How to use spring expression to read file content and put it into a string?
I would like to do the following.
For example,
@Value("classpath:myquery.sql")
File f;
@Value("#{org.apache.commons.io.FileUtils.readFileToString(f)}")
String sql;
Or even better
@Value("#{FileUtils.readFileToString(classpath:myquery.sql)}")
String sql;
However, none of above code work.
Just to mention I am using spring version 3.2.0
Thanks.
回答1:
Finally got the answer myself...
@Value("#{T(org.apache.commons.io.FileUtils).readFileToString(" +
"T(org.springframework.util.ResourceUtils).getFile('classpath:myquery.sql')" +
")}")
String sql;
sql is now default filled by the exact content of myquery.sql under classpath
回答2:
There is a similar question answered here which use Java configuration.
@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);
}
}
}
来源:https://stackoverflow.com/questions/14639209/spring-expression-read-file-content