Dans mon application Spring 3.0, j'ai des ressources en /WEB-INF/dir
. Au moment de l'exécution, j'ai besoin de certains d'entre eux sous forme de InputStream
(ou d'un autre type). Comment puis-je les récupérer ? Est-il possible de les injecter comme un Resource
normal ?
Réponses
Trop de publicités?
Saket
Points
9771
atrain
Points
5653
Voici un exemple complet pour récupérer une ressource de chemin de classe. Je l'utilise pour récupérer des fichiers SQL contenant des requêtes très complexes que je ne souhaite pas stocker dans des classes Java :
public String getSqlFileContents(String fileName) {
StringBuffer sb = new StringBuffer();
try {
Resource resource = new ClassPathResource(fileName);
DataInputStream in = new DataInputStream(resource.getInputStream());
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;
while ((strLine = br.readLine()) != null) {
sb.append(" " + strLine);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return sb.toString();
}
user636334
Points
740
Si vous ne souhaitez pas introduire de dépendance à Spring, suivez l'approche détaillée ici : Remplir le champ Fichier de Spring Bean via Annotation