gpt4 book ai didi

java - 为什么 Spring MVC 至少需要两个上下文?

转载 作者:IT老高 更新时间:2023-10-28 13:49:58 24 4
gpt4 key购买 nike

在 Spring MVC 中,有两种上下文。一种是由ContextLoaderListener 启动的应用程序上下文或全局上下文。它获取 contextConfigLocation 参数中提到的所有配置文件。

现在,如果您也使用 Spring MVC,则需要 Dispatcher servlet,它会启动另一个容器,该容器也称为 Web 应用程序容器。该容器将全局容器作为父容器。

将 struts1 与 spring 集成时,只有一个上下文。为什么spring mvc需要两个?使用spring mvc时是否可以只使用一个上下文?

谢谢!

最佳答案

拥有一个根 Web 应用程序上下文和一个子 servlet 上下文只是一种选择。如果您知道您的应用程序不会有第二个 servlet,那么为整个 Web 应用程序拥有一个单一的 Spring 上下文可能会更简单。

您可以通过简单地从 web.xml 中删除 ContextLoaderListener(以及随附的 contextConfigLocation 上下文参数)并移动所有 bean 定义到定义 servlet 上下文的 xml 中 ([servlet-name]-servlet.xml)。

这是可能的,因为 FrameworkServlet(DispatcherServlet 的父类(super class))在创建 servlet 上下文时并不关心是否存在根应用程序上下文。如果可用,它只是将根上下文作为父级中继。见 related code here .

关于java - 为什么 Spring MVC 至少需要两个上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18682486/

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