2010-03-22 15 views
8

Sto utilizzando org.springframework.web.servlet.DispatcherServlet e org.springframework.ws.transport.http.MessageDispatcherServlet nella stessa app, ma ognuno sta caricando il proprio contesto applicativo, ho bisogno di caricare tutti i bean in un contesto di singola applicazione.Uso contesto di applicazione singola per applicazione web

L'applicazione è costituita da strati tipici web> app> dao ecc

Quello che ho cercato è quello di utilizzare un unico spring-root-context.xml impostando nel contextConfigLocation.

Ma non ha aiutato, questo è stato un problema per me per molto tempo e gradirei qualsiasi aiuto con questo.

Qualsiasi riferimento online sarebbe di grande aiuto.

risposta

12

Quello che ti serve è lo ContextLoaderListener. Questo è un ServletContextListener che crea una radice WebApplicationContext condivisa tra tutti i servlet in quella webapp.

tuo DispatcherServlet e MessageDispatcherServlet saranno ancora creare i propri contesti, ma ognuno avrà il contesto radice come impresa madre, in modo che saremo entrambi in grado di utilizzare i fagioli definite in tale contesto radice, come DAO ecc Alcuni fagioli avranno rimanere nei propri contesti servlet, come controllori, resolver di vista, endpoint SOAP e così via, ma i bean comuni condivisi possono andare nella radice.

Per un esempio su come configurare questo, vedere Spring docs.

+0

Ciao skaffman, grazie al tuo buon aiuto sta lavorando come un sogno ora, grazie :) – Ramo

+0

@Ramo: Felice di aiutare. Qui è dove si fa clic sul simbolo di spunta accanto alla mia risposta :) – skaffman

+0

link rot colpisce ancora. Quindi, come sarebbe configurato? – eis

Problemi correlati