Spring 中 DispatcherServlet 和 ContextLoaderListener 的區別
ContextLoaderListener 為 Web 應用程式建立一個根 Web 應用程式上下文,並將其放入 ServletContext 中。無論控制器層使用何種技術(Struts 或 Spring MVC),都可以使用此上下文載入和解除安裝 Spring 管理的 Bean。
DispatcherServlet 建立自己的 WebApplicationContext,並且此上下文管理處理程式/控制器/檢視解析器。
| 序號 | 關鍵 | DispatcherServlet | ContextLoaderListener |
|---|---|---|---|
| 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 應用程式上下文。 |
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP