Contesto dell’applicazione Web / contesto dell’applicazione root e impostazione del gestore transazioni

Ho avuto due domande,

Nell’applicazione MVC di Spring, qual è lo scopo di avere ContextLoaderListener?

Di seguito sono elencate le mie voci in web.xml, Tutti i bean MVC sono definiti in servlet-context.xml Tutta la gestione delle transazioni basata su annotazioni e database è definita in applicationContext.xml e sto utilizzando la transazione gestita dal contenitore in JBoss

Il gestore delle transazioni funziona correttamente se si passa applicationContext.xml come evidenziato di seguito a DispatcherServlet. Ma ho pensato che dovremmo solo passare le informazioni di contesto Spring MVC a DispatcherServlet.

Se rimuovo applicationContext.xml, il gestore delle transazioni smette di funzionare? Sono confuso quale sia il modo migliore di gestire i file di contesto?

web.xml

 org.springframework.web.context.ContextLoaderListener   contextConfigLocation  /WEB-INF/config/applicationContext.xml /WEB-INF/config/spring-mail.xml    javax.servlet.jsp.jstl.fmt.localizationContext messages   Spring MVC Dispatcher Servlet org.springframework.web.servlet.DispatcherServlet  contextConfigLocation  /WEB-INF/config/servlet-context.xml ***/WEB-INF/config/applicationContext.xml***   1  

applicationContext.xml

               

servlet-context.xml

             <!-- -->                /WEB-INF/xxxx.properties   

Grazie per il tuo aiuto! Conosco la sua citazione a lungo, ma volevo farmi capire meglio

Come spiegato nella documentazione , ogni servlet dispatcher ha il proprio contesto applicativo, in cui di solito si definiscono i controller, i resolver di visualizzazione, ecc. E che eredita (e può sovrascrivere i bean) da un contesto dell’applicazione root, che in genere contiene definizioni di origine dati, middle servizi di livello, ecc.

ContextLoaderListener, come spiega la documentazione , è utilizzato per avviare e chiudere il contesto dell’applicazione radice di Spring (da cui ereditano i contesti della servlet).

È anche utile quando si desidera utilizzare Spring per il livello intermedio, ma non si desidera utilizzare Spring MVC come livello di presentazione. In questo caso, si definisce solo un contesto dell’applicazione root utilizzando ContextLoaderListener.