2014-01-20 6 views
6

Ich versuche, etwas über das Spring-Framework für Java zu lernen, und ich bin mir nicht sicher, wo ich die Datei applicationContext.xml zur Konfiguration der Spring-Beans ablegen soll. Meine Verzeichnisstruktur ist wie folgt:Wo finde ich die Datei applicationContext.xml im Spring-Projektverzeichnis?

Spring directory layout

Muss ich in .settings setzen? Oder sollte es in der Frühjahrsapplikation auf der obersten Ebene stehen?

Danke für die Hilfe.

Antwort

5

In das Verzeichnis WebContent/WEB-INF eingeben.

Ressourcen, die in den Ordner WEB-INF platziert wurden, sind nicht vom Web aus zugänglich, sie sind interne Ressourcen der Anwendung. Das ist gut, weil Ihre applicationContext.xml nicht aus dem Internet zugänglich sein sollte. Andere gute Optionen sind WebContent/WEB-INF/classes oder nur src (beide sind gleich).

Dateien und Ordner mit . enthält Eclipse-Konfigurationsdateien, sie sind intern für Eclipse - verwenden Sie sie nicht.

+1

Vielen Dank für den guten Rat und die Hilfe. Einige gute Antworten von allen hier, aber ich denke, das ist die nützlichste. – dickturnip

1

WEB-INF oder seine Unterverzeichnisse. Der Inhalt dieser Ordners wird direkt in die Wurzel war Datei gepackt, so Dateien, die direkt unter diesem Ordner zugegriffen werden als Ressourcen mit Pfad wie '/foo.xml' (oder im Frühjahr Notation classpath:/foo.xml

+0

Sollte es nicht in '/ WEB-INF/classes' sein, dass das wahr ist? In der Eclipse wäre es in einem Quellordner. –

3

ich sind empfehlen, es in dem src (oder src/META-INF) . Ordner und greifen sie über classpath:applicationContext.xml (oder classpath:META-INF/applicationContext.xml) (Eclipse diese Datei zu WebContent/WEB-INF/classes kopieren, wenn es den Krieg Archiv bauen.)

Denn:

  • Der Bürgermeister advantag e von src über src/main/webapp/WEB-INF/WebContent-WEB-INF ist, dass Sie die src Dateien auch in den Tests zugreifen können (via classpath:applicationContext.xml)
  • NICHT es .settings setzen, weil der Inhalt dieses Verzeichnis im Web nicht bereitgestellt wird App (es ist Eclipse-Konfiguration Ordner)

natürlich, wenn Sie Maven verwenden, setzen Sie dann die Datei in src\main\resources (oder src\main\resources\META-INF), Maven wird sie in dem classpath-Ordner kopieren, während kompilieren.

0

Es muss im Klassenpfad sein. Sie können die ursprüngliche editierbare Instanz an eine beliebige Stelle setzen (z. B. ein config-Verzeichnis vom Stammverzeichnis), aber dann müssen Sie Ihr Build-Management-Tool (z. B. Ant oder Maven) für die Laufzeit in den Klassenpfad kopieren.