重訪 ContextLoaderListener
標準 Spring Web 應用程式同時使用 ContextLoaderListener 和 DispatcherServlet。雖然前者旨在載入非 Web 相關的配置,而後者僅處理 Web 相關的配置,但問題來了:為什麼不使用 DispatcherServlet 載入所有配置以避免多個上下文的複雜性?
使用多個上下文的原因
從歷史上看,鼓勵使用兩種上下文來將網路相關的問題與非網路相關的問題分開。當在多個 DispatcherServlet 之間共用服務或從舊版 servlet 存取 Spring-wired 服務時,這種做法具有優勢。但是,如果這些條件不適用,如問題中所建議的,可能沒有令人信服的理由來維護 web 應用程式層級上下文。
刪除的理由
刪除 ContextLoaderListener 的決定最終取決於具體的應用程式需求。但是,如果以下場景都不適用:
然後刪除ContextLoaderListener 並僅依賴DispatcherServlet 可以簡化應用程式架構,並可能解決與跨上下文的事件處理相關的問題。
警告
在考慮刪除 web 應用級情境時,請仔細評估對後台任務(例如排程任務或 JMS 連線)的影響。如果實作缺少
以上是你應該在 Spring Web 應用程式中放棄「ContextLoaderListener」嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!