Spring 中 DispatcherServlet 和 ContextLoaderListener 的區別


ContextLoaderListener 為 Web 應用程式建立一個根 Web 應用程式上下文,並將其放入 ServletContext 中。無論控制器層使用何種技術(Struts 或 Spring MVC),都可以使用此上下文載入和解除安裝 Spring 管理的 Bean。

DispatcherServlet 建立自己的 WebApplicationContext,並且此上下文管理處理程式/控制器/檢視解析器。

序號關鍵DispatcherServletContextLoaderListener
1
基礎
DispatcherServlet 的任務是將請求傳送到特定的 Spring MVC 控制器
ContextLoaderListener 讀取 Spring 配置檔案(web.xml 中 contextConfigLocation 屬性指定的值),解析它並載入該配置檔案中定義的單例 Bean。因此,我們使用 ContextLoaderListener 初始化 Web 應用程式,以便預先讀取/解析/驗證配置檔案,並且無論何時需要注入依賴項,都可以立即執行而無需任何延遲。
2
可選
它是可選的。Spring 應用程式無法在沒有 DispatcherServlet 的情況下執行。
它是必須的。Spring 應用程式可以在沒有 ContextLoaderListener 的情況下執行。
3
容器
DispatcherServlet 建立自己的 WebApplicationContext。此上下文管理處理程式/控制器/檢視解析器。
應用程式上下文是由 web.xml 中定義的 ContextLoaderListener 初始化的容器。
4
Bean
諸如控制器之類的 Web 特定 Bean 包含在 DispatcherServlet 的 Web 應用程式上下文中。
諸如服務和 DAO 之類的通用 Bean 會進入根 Web 應用程式上下文。

更新於: 2020-09-09

2K+ 瀏覽量

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.