10

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.

Timmy Chiu
  • 549
  • 4
  • 13

2 Answers2

24

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

Timmy Chiu
  • 549
  • 4
  • 13
5

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);
        }
    }
}
Community
  • 1
  • 1
Evan Hu
  • 977
  • 1
  • 13
  • 18