Ich habe mir eine Reihe von Beispielprojekten angeschaut und ich kann nicht scheinen, eine gemeinsame Best Practice herauszukitzeln. Ich habe gesehen, Spring Bean Konfigurationsdateien gehen manchmal in das Verzeichnis src/main/webapp/WEB-INF
. Ich habe dies in web.xml
wie dies mit einer Servlet-Definition in Verbindung gesehen:Wohin gehen Spring-Bean-Konfigurationsdateien in einem Maven-WAR-Modul?
<servlet>
<servlet-name>my-stuff</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/my-stuff-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
Aber ich habe auch Bean-Konfigurationsdateien enthalten innerhalb web.xml
obersten Ebene gesehen - das heißt außerhalb eines Servlets. Was bedeutet das? Ist dies für Cross-Servlet-Bohnen? Manchmal ist es im Verzeichnis src/main/webapp/WEB-INF
und manchmal in src/main/resources
. Ich habe auch andere Bean-Konfigurationsdateien gesehen, die in WAR-Modulen mit fast allem in src/main/resources
definiert wurden.
Ich habe die Spring-Dokumentation gelesen und gelesen, aber die einzige Konvention, die ich gefunden habe, ist, dass eine Servlet-Kontextkonfigurationsdatei standardmäßig im Verzeichnis src/main/webapp/WEB-INF
mit dem Namen {servlet-name}-servlet.xml
sein sollte.
Also, was ist die beste Praxis und warum?
Sehr hilfreich - danke. Ich wünschte, dies wurde in den Frühlingsdokumenten so gut erklärt! – HDave
@HDave Das ist nicht Spring-spezifisch, es ist normales Java-Classloader-Verhalten (das einzige Ding, das springspezifisch ist, ist das 'classpath:' -Präfix) –