Comment sont exactement le contexte de la racine et le répartiteur de la servlet dans un contexte Spring MVC de l'application web?

Je suis étudiant Spring MVC et j'ai quelques doute liée

Donc, j'ai cette classe de configuration permettant de configurer mon DispatcherServlet qui traitent les demandes des utilisateurs:

public class MyWebAppInitializer implements WebApplicationInitializer {

    @Override
    public void onStartup(ServletContext container) {

        //Create the 'root' Spring application context
        AnnotationConfigWebApplicationContext rootContext = ...
        //Create the dispatcher servlet's Spring application context
        AnnotationConfigWebApplicationContext dispatcherContext = new AnnotationConfigWebApplicationContext();

       dispatcherContext.register(DispatcherConfig.class);

       //Register and map the dispatcher servlet
       ServletRegistration.Dynamic dispatcher = container.addServlet("main", new DispatcherServlet(dispatcherContext));
       dispatcher.setLoadOnStartup(1);
       dispatcher.addMapping("main/");
   }
}

Il est assez clair pour moi comment les DispatcherServlet œuvres. Mes doutes sont liés à la contexte concept.

1) qu'est-Ce exactement représentent un contexte? Je pense que c'est quelque chose comme un ensemble de haricots qui ont un pourpose et qui travaille ensemble dans un environnement. Mais je suis absolument pas vrai à propos de cette affirmation.

2) Quelle est la différence entre le contexte de la racine et la répartiteur servlet contexte?

3) De ce que j'ai à comprendre les haricots défini dans dispatcherContext avoir accès à des haricots défini dans rootContext (mais l'inverse n'est pas vrai). Pourquoi?

Tnx

  • Votre fichier WAR est le contexte.
  • Les haricots/configuraiton chargé par le ContextLoaderListener est le contexte de la racine, tout chargé par un DispatcherServlet (ou MessageDispatcherServlet pour le Printemps-WS) est un enfant de cadre. Vous pouvez avoir plusieurs servlets qui ont tous accès à la racine de contexte (doit contenir des ressources partagées comme les services, etc.). Maintenant, si vous avez 10 répartiteur de servlets, qui servlet doit être accessible par le contexte de la racine? Donc seul le parent est accessible à partir de l'enfant et non l'inverse. Ce serait aussi conduire à des problèmes avec l'AOP, tout à coup AOP défini par l'enfant aurait une influence sur le parent.
  • Tnx tellement, parfait explication. Si vous mettez comme réponse, je vais l'accepter 🙂
  • stackoverflow.com/questions/19619539/...
  • link1 , link2 de bonnes explications.
InformationsquelleAutor AndreaNobili | 2015-06-04