Wie genau sind der Stammkontext und der Dispatcher-Servlet-Kontext in einer Spring MVC-Webanwendung?

Ich studiereSpring MVC und ich habe einige Zweifel im Zusammenhang mit

Also, ich habe diese Konfigurationsklasse, die meine @ konfigurier DispatcherServlet, die die Benutzeranforderungen verarbeiten:

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

Es ist mir ziemlich klar, wie das DispatcherServlet funktioniert. Meine Zweifel beziehen sich auf dasKontex Konzept

1) Was genau ist einKontex? Ich denke, das ist so etwas wie eine Reihe von Bohnen, die einen bestimmten Zweck haben und die zusammen in eine Umgebung passen. Aber ich bin absolut nicht wahr über diese Behauptung.

2) Was ist der Unterschied zwischen demroot context und die Dispatcher Servlet Kontext?

3) Soweit ich weiß, sind die in @ definierten Bea dispatcherContext haben Zugriff auf Beans, die in @ definiert si rootContext (aber das Gegenteil ist nicht wahr). Warum

Tnx

Antworten auf die Frage(2)

Ihre Antwort auf die Frage