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.
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 .
Tags und Links java spring spring-mvc