Bekommen Pfad zum Verzeichnis, aus dem Spring-bean?
Ich habe, was scheint, wie ein einfaches problem. Ich habe eine Spring-web-app bereitgestellt, die in Tomcat. In einer service-Klasse möchte ich in der Lage sein, zu schreiben, eine neue Datei zu einem Verzeichnis namens " Graphen einfach unter mein root der Anwendung:
/
/WEB-INF
/graphs/
/css/
/javascript/
Mein service-Klasse ist eine Spring-bean, aber ich habe keinen direkten Zugriff auf ServletContext durch die HttpServlet-Maschinen. Ich habe auch versucht, die Umsetzung ResourceLoaderAware aber immer noch kann nicht scheinen, um schnappen Sie sich einen Griff auf das, was ich brauche.
Wie verwende ich die Feder, um ein handle auf ein Verzeichnis innerhalb meiner Anwendung, so dass ich eine Datei schreiben? Danke.
InformationsquelleAutor D.C. | 2010-03-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Ihr bean wird verwaltet von der webapp ist Frühling Kontext, dann können Sie implementieren
ServletContextAware
und im Frühling füllt dieServletContext
in Ihrer bean. Sie können dann Fragen dieServletContext
für die real -, Dateisystem-Pfad einer gegebenen Ressourcen, wie z.B.Wenn Ihr bean ist nicht in einem webapp Kontext, dann wird es ziemlich hässlich, sowas kann funktionieren:
Diese verwendet das veraltet
ServletRequest.getRealPath
Methode, aber es sollte trotzdem funktionieren, obwohlRequestContextHolder
funktioniert nur, wenn die Ausführung durch den Anfrage-thread.Richtig. Frühjahr Kontexten nicht haben, um Teil einer webapp, Sie können auch Stand-alone.
InformationsquelleAutor skaffman
@All
Das problem mit diesen Antworten sind Sie veralten oder die Informationen, um Dinge zu tun, die in mehrere Arten war nicht erkennbar, zu der Zeit. Wie das alte Atari-computer, den Sie verwenden können (grins), kann die Dinge haben sich geändert!
Können Sie einfach
@Autowired
den ServletContext in Ihrem bean:InformationsquelleAutor Frank C.