您的位置:首页 > 编程语言 > Java开发

Spring中ContextLoderListener、ContextLoaderServlet 与 DispatcherServlet

2011-06-08 17:53 435 查看
(一)ContextLoaderListener 与 ContextLoaderServlet本质上是等同的,都是调用ContextLoader来加载web程序的上下文,

加载完成以后,都是在ServletContext中,只不过listener需要Servlet2.3及以上支持。

(二)ContextLoaderListene与DispatcherServlet的区别:

我们知道spring在web.xml中可以有三种方式来配置其xml路径,来加载Bean:

org.springframework.web.servlet.DispatcherServlet

org.springframework.web.context.ContextLoaderListener

org.springframework.web.context.ContextLoaderServlet

当使用第一种方式配置时,spring载入的WebApplicationContext是隶属于此Servlet的(所以spring可以配置多个分别拥有各自环境的DispatcherServlet),因此其他servlet无法获取到该Context。这一现象在buffalo配置时曾经出现(无法找到服务bean)。分析了buffalo和spring的源码后,将xml在ContextLoaderListener配置才得以解决。

如果web.xml文件中只使用了一个dispatcherservlet来进行分发,则使用dispatcherservlet或使用contextloaderlistener来加载bean实例是等效的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐