首页  >  文章  >  Java  >  你应该在 Spring Web 应用程序中放弃“ContextLoaderListener”吗?

你应该在 Spring Web 应用程序中放弃“ContextLoaderListener”吗?

Linda Hamilton
Linda Hamilton原创
2024-11-05 08:54:02179浏览

Should You Ditch `ContextLoaderListener` in Spring Web Applications?

重访 ContextLoaderListener

标准 Spring Web 应用程序同时使用 ContextLoaderListener 和 DispatcherServlet。虽然前者旨在加载非 Web 相关的配置,而后者仅处理 Web 相关的配置,但问题来了:为什么不使用 DispatcherServlet 加载所有配置以避免多个上下文的复杂性?

使用多个上下文的原因

从历史上看,鼓励使用两种上下文来将网络相关的问题与非网络相关的问题分开。当在多个 DispatcherServlet 之间共享服务或从遗留 servlet 访问 Spring-wired 服务时,这种做法具有优势。但是,如果这些条件不适用,如问题中所建议的,可能没有令人信服的理由来维护 web 应用程序级上下文。

删除的理由

删除 ContextLoaderListener 的决定最终取决于具体的应用程序需求。但是,如果以下场景都不适用:

  • 需要在 DispatcherServlet 之间共享服务
  • 依赖需要 Spring 连线服务的旧版 servlet
  • 利用与 web 应用级上下文集成的过滤器

然后删除 ContextLoaderListener 并仅依赖 DispatcherServlet 可以简化应用程序架构,并可能解决与跨上下文的事件处理相关的问题。

警告

在考虑删除 web 应用级上下文时,请仔细评估对后台任务(例如计划任务或 JMS 连接)的影响。如果实现缺少配置中,这些任务只会在第一次访问 servlet 时启动,可能会影响及时处理。

以上是你应该在 Spring Web 应用程序中放弃“ContextLoaderListener”吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn