重访 ContextLoaderListener
标准 Spring Web 应用程序同时使用 ContextLoaderListener 和 DispatcherServlet。虽然前者旨在加载非 Web 相关的配置,而后者仅处理 Web 相关的配置,但问题来了:为什么不使用 DispatcherServlet 加载所有配置以避免多个上下文的复杂性?
使用多个上下文的原因
从历史上看,鼓励使用两种上下文来将网络相关的问题与非网络相关的问题分开。当在多个 DispatcherServlet 之间共享服务或从遗留 servlet 访问 Spring-wired 服务时,这种做法具有优势。但是,如果这些条件不适用,如问题中所建议的,可能没有令人信服的理由来维护 web 应用程序级上下文。
删除的理由
删除 ContextLoaderListener 的决定最终取决于具体的应用程序需求。但是,如果以下场景都不适用:
然后删除 ContextLoaderListener 并仅依赖 DispatcherServlet 可以简化应用程序架构,并可能解决与跨上下文的事件处理相关的问题。
警告
在考虑删除 web 应用级上下文时,请仔细评估对后台任务(例如计划任务或 JMS 连接)的影响。如果实现缺少
以上是你应该在 Spring Web 应用程序中放弃“ContextLoaderListener”吗?的详细内容。更多信息请关注PHP中文网其他相关文章!