2010-03-22 7 views
8

Ich bin mit org.springframework.web.servlet.DispatcherServlet und org.springframework.ws.transport.http.MessageDispatcherServlet in der gleichen App, aber jeder lädt eigenen Anwendungskontext, ich muss alle Beans in einem einzigen Anwendungskontext laden.Verwenden einzigen Feder Anwendungskontext für Web-App

Die Anwendung besteht aus typischen Schichten web> app> dao etc

Was ich versucht habe, ist eine einzige spring-root-context.xml zu verwenden, indem es in der contextConfigLocation Einstellung.

Aber hat nicht geholfen, das war ein Problem für mich für eine lange Zeit und ich würde jede Hilfe mit diesem schätzen.

Alle Online-Referenzen wären eine große Hilfe.

Antwort

12

Was Sie hier brauchen, ist die ContextLoaderListener. Dies ist eine ServletContextListener, die eine Wurzel WebApplicationContext erstellt, die unter allen Servlets in dieser Webanwendung geteilt wird.

Ihre und MessageDispatcherServlet werden immer noch ihre eigenen Kontexte erstellen, aber jeder hat den Stammkontext als Eltern, so dass beide in diesem Stammkontext definierte Beans wie DAOs usw. verwenden können B. in Controllern, View-Resolvern, SOAP-Endpunkten usw. bleiben, aber die gemeinsam genutzten Beans können in den Stammordner verschoben werden.

Ein Beispiel zur Konfiguration finden Sie unter Spring docs.

+0

Hallo skaffman, dank deiner guten Hilfe funktioniert es jetzt wie ein Traum, danke :) – Ramo

+0

@Ramo: Ich bin froh zu helfen. Hier klickst du auf das Häkchen neben meiner Antwort :) – skaffman

+0

link rot streikt wieder. Wie wäre es konfiguriert? – eis

Verwandte Themen