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应用程序上下文中出现了 |