gpt4 book ai didi

spring - 了解 spring 调度程序 servlet 初始化

转载 作者:行者123 更新时间:2023-12-02 08:25:34 25 4
gpt4 key购买 nike

以下是 Spring 文档推荐的初始化 DispatcherServlet 的方法:

<web-app>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/root-context.xml</param-value>
</context-param>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value></param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
</web-app>

我的问题是关于在 init-param 标记内提供一个空的参数值。尽管将该参数定义为 context-param 我们仍然提供空值。因此,当传递给 servlet 的 init() 方法时,contextConfigLocation 应为 null。有什么问题请指正。

最佳答案

在 Spring Web 应用程序中,有两种类型的容器,每种容器的配置和初始化都不同。

  • 应用程序上下文
  • Web 应用程序上下文

应用程序上下文由您在上下文参数中指定的配置文件初始化,并由 ContextLoaderListener 拾取。这纯粹是我认为与业务逻辑相关的 bean。

Web 应用程序上下文是应用程序上下文的子级,该上下文可能存在也可能不存在。每个 DispatcherServlet 将具有关联的 WebApplicationContext,并从 init-params 中获取 spring bean 来创建上下文。

ApplicationContext 中可用的任何 bean 都可以从每个 WebApplicationContext 引用。

我们采用两种不同 bean 配置的原因是为了在中间层服务(例如业务逻辑组件和数据访问类(通常在 ApplicationContext 中定义))与 Web 相关组件(例如 Controller 和 View )之间保持清晰的分离解析器(在每个 Dispatcher Servlet 的 WebApplicationContext 中定义)。

关于spring - 了解 spring 调度程序 servlet 初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27619093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com