2013-02-01 21 views
5

Jak używać wyrażenia wiosennego do odczytywania zawartości pliku i wstawiania go do napisu?wyrażenie sprężyste przeczytaj zawartość pliku

Chciałbym wykonać następujące czynności.

Na przykład

@Value("classpath:myquery.sql") 
File f; 

@Value("#{org.apache.commons.io.FileUtils.readFileToString(f)}") 
String sql; 

Albo jeszcze lepiej

@Value("#{FileUtils.readFileToString(classpath:myquery.sql)}") 
String sql; 

Jednakże żadna z powyższych prac kodu.

Tylko wspomnę, że używam wersji wiosna 3.2.0

Dzięki.

Odpowiedz

17

końcu dostałem odpowiedź siebie ...

@Value("#{T(org.apache.commons.io.FileUtils).readFileToString(" + 
    "T(org.springframework.util.ResourceUtils).getFile('classpath:myquery.sql')" + 
    ")}") 
String sql; 

SQL jest teraz domyślnie wypełnione przez dokładnej treści myquery.sql pod ścieżce klasy

+0

Mocny !! Oznacz swoją odpowiedź jako zaakceptowaną;) – Stephan

3

Jest podobne pytanie odpowiedział here które wykorzystują konfigurację 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); 
     } 
    } 
} 
Powiązane problemy