Wie genau sind die root-Kontext und das dispatcher-servlet-Kontext in eine Spring-MVC-web-Anwendung?

Ich studiere Spring MVC und ich habe einige Zweifel im Zusammenhang

So, ich habe diese configuration-Klasse, die bei der Konfiguration meines DispatcherServlet, die mit der Benutzer-Anforderungen:

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/");
   }
}

Ist es ziemlich klar für mich, wie der DispatcherServlet funktioniert. Meine Zweifel beziehen sich auf die Kontext Konzept.

1) Was genau repräsentieren eine Kontext? Ich denke, dass ist so etwas wie eine Reihe von Bohnen, die eine bestimmte pourpose und arbeiten zusammen in einer Umgebung. Aber ich bin absolut nicht wahr, über diese Behauptung.

2) Was ist der Unterschied zwischen den root-Kontext und die dispatcher-servlet-Kontext?

3) Aus, was ich verstehen, die Bohnen, definiert in dispatcherContext haben Zugriff auf beans definiert in rootContext (aber das Gegenteil ist nicht wahr). Warum?

Tnx

  • Sie Ihre war-Datei ist der Kontext.
  • Bohnen/configuraiton geladen ContextLoaderListener ist die root-Kontext, alles geladen, durch eine DispatcherServlet (oder MessageDispatcherServlet für Spring-WS) ist ein Kind-Kontext. Sie können mehrere servlets, die alle Zugriff auf den root-Kontext (enthalten sollte Sie freigegebene Ressourcen wie services, etc.). Nun, wenn Sie 10 dispatcher servlets das servlet zugegriffen werden soll, indem Sie den root-Kontext? So sind die Eltern zugänglich ist, aus dem Kind und nicht anders herum. Dies würde auch dazu führen, Probleme mit AOP, plötzlich AOP definiert durch das Kind, Einfluss der Eltern.
  • Tnx so viel, perfekte Erklärung. Wenn du es als Antwort werde ich es annehmen 🙂
  • stackoverflow.com/questions/19619539/...
  • link1 , link2 gute Erklärungen.
InformationsquelleAutor AndreaNobili | 2015-06-04
Schreibe einen Kommentar