Ich weiß das:
ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
lädt die Kontextdefinition aus einer XML-Datei im Klassenpfad und behandelt Kontextdefinitionen als Klassenpfadressourcen.
ApplicationContext context = new FileSystemXmlApplicationContext("bean.xml");
lädt die Kontextdefinition aus einer XML-Datei im Dateisystem.
XmlWebApplicationContext
lädt die Kontextdefinition aus einer XML-Datei, die in einer Webanwendung enthalten ist.
Aber was heißt das genau?
Danke:)
ClassPathXmlApplicationContext
liest Dateien aus Ihrem Klassenpfad. Sie müssen sich im Ordner classes
Ihrer Webanwendung oder in einem jar
in Ihrem Ordner lib
befinden.
FileSystemXmlApplicationContext
kann auf Ihr gesamtes Dateisystem zugreifen, z. B. c:/config/applicationContext.xml
.
XmlWebApplicationContext
kann sicherlich auf Dateien zugreifen, die in Ihrer Webanwendung enthalten sind, aber das ist nicht das Wichtigste. Es implementiert WebApplicationContext und das bedeutet dass es ServletContextAware -Bohnen erkennt , benutzerdefinierte Bereiche (Anfrage, Sitzung, ...) unter anderem registrieren.
Ich denke über der Meinung kann etwas falsch sein, FileSystemXmlApplicationContext
kann nicht auf Ihr ganzes Dateisystem zugreifen , was es nur scannen kann, ist Ihr gesamter Projektordner. Um meine Schlussfolgerung zu beweisen, mache ich ein Beispiel, zuerst mit ClasspathXmlApplicationContext
und alles ist normal, das zweite Mal ich beans.xml Datei in meinen Desktop-Ordner zu verschieben, so gibt es keine beans.xml Datei im Projekt Hirachy, und ändern Sie ClassPathXmlApplicationContext in FileSytemXmlApplicationContext
und etwas schief geht , Fehlerspur unten:
So kann FileSystemXmlApplicationContext nur den aktuellen Ordner des Projekts erkennen. Beispielsweise erstellen Sie ein Verzeichnis mit dem Namen config
im Stammverzeichnis des Projekts, und Sie können Ihren Hauptklassencode wie folgt ändern:
Und alles wird wieder gut. Also, wenn alle wie sinuhepop sagten, ich denke, da sollte etwas geändert werden müssen.
Tags und Links spring spring-mvc