Verwenden von einzelnen Feder Anwendungskontext für Web-App

8

Ich verwende org.springframework.web.servlet.DispatcherServlet und org.springframework.ws.transport.http.MessageDispatcherServlet in der gleichen App, aber jeder lädt seinen eigenen Anwendungskontext, ich muss alle Beans in einem einzigen Anwendungskontext laden.

Die Anwendung besteht aus typischen Ebenen web & gt; app & gt; dao usw.

Was ich ausprobiert habe ist, ein einzelnes spring-root-context.xml zu verwenden, indem Sie es in contextConfigLocation setzen.

Aber hat nicht geholfen, das war für mich schon lange ein Problem und ich würde mich über jede Hilfe bei diesem Thema freuen.

Jede Online-Verweise wäre eine große Hilfe.

    
Ramo 22.03.2010, 11:58
quelle

1 Antwort

12

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

Ihre DispatcherServlet und MessageDispatcherServlet erstellen immer noch ihre eigenen Kontexte, aber jeder hat den Stammkontext als Eltern, so dass beide in diesem Stammkontext definierte Beans, wie DAOs usw., verwenden können Beans müssen in den eigenen Kontexten der Servlets verbleiben, wie z. B. Controller, View Resolver, SOAP-Endpoints usw. Die gemeinsam genutzten Beans können jedoch in den Stammordner verschoben werden.

Ein Beispiel für die Konfiguration finden Sie in der Frühlingsdokumente .

    
skaffman 22.03.2010, 13:59
quelle

Tags und Links