基于注释的web.xml中的DispatcherServlet配置

时间:2017-11-29 03:39:35

标签: java spring

在阅读问题(WebAppInitializer.class)之前,请参阅此Source。 是否必须单独配置根配置类和DispatcherConfig类。为什么为AnnotationConfigWebApplicationContext创建了两个对象。 我们不能使用单个对象来配置所有类。 我的Spring版本是4.3.12版本,我指的是Spring MVC(不是Spring Boot)。

1 个答案:

答案 0 :(得分:0)

出于某种原因创建了两个不同的上下文,它们用于不同的目的。

  • 根应用程序上下文包含业务服务,存储库。
  • DispatcherServlet应用程序上下文包含控制器,视图和 分解器。

因此,创建了AnnotationConfigWebApplicationContext的2个实例来注册2个上下文。

还必须看到,如何在容器中注册2个上下文。

//root Context
AnnotationConfigWebApplicationContext rootContext = ...
container.addListener(new ContextLoaderListener(rootContext));

// Register and map the dispatcher servlet
AnnotationConfigWebApplicationContext dispatcherServlet = ...
ServletRegistration.Dynamic dispatcher = container.addServlet("dispatcher", new DispatcherServlet(dispatcherServlet));