Spring中DispatcherServlet和ContextLoaderListener之间的区别

ContextLoaderListener为Web应用程序创建根Web应用程序上下文,并将其放在ServletContext中。无论在控制器层中使用哪种技术(Struts或Spring MVC),都可以使用此上下文加载和卸载Spring管理的bean。

DispatcherServlet创建自己的WebApplicationContext,并且处理程序/控制器/视图解析器由该上下文管理。

序号分派器ContextLoaderListener
1
基本的
DispatcherServlet的任务 是将请求发送到特定的Spring MVC控制器 
ContextLoaderListener读取Spring配置文件(具有针对web.xml中的contextConfigLocation给出的值),对其进行解析并加载在该配置文件中定义的单例bean。因此,我们使用ContextLoaderListener初始化了Web应用程序,以便我们预先读取/解析/验证配置文件,并且每当我们能够注入依赖项时,我们都可以立即做到这一点而不会产生任何延迟
2
可选的
它是可选的。没有DispatcherServlet的Spring应用程序将无法生存
这是强制性的。Spring应用程序可以在没有ContextLoaderListner的情况下运行
3
容器
 DispatcherServlet创建自己的WebApplicationContext。处理程序/控制器/视图解析器由此上下文管理
应用程序上下文是由web.xml中定义的ContextLoaderListener初始化的容器
4
豆子
 特定于Web的bean(例如控制器)包含在DispatcherServlet的Web应用程序上下文中
诸如服务和DAO之类的常规bean在根Web应用程序上下文中出现了