总结一下:
Spring的WebApplicationContext加载有2种:ContextLoaderListener和DispatcherServlet,在web.xml配置,ContextLoaderListener和DispatcherServlet有什么区别?
1 ContextLoaderListener
在我们的web容器启动的时候启动的,默认会加载/WEB-INF/下面的applicationContext.xml文件。并创建一个WebApplicationContext容器,是web的Root WebApplicationContext。
2 DispatcherServlet
在我们第一次访问我们的应用的时候创建的。这时候它默认会将配置在/WEB-INF下面的<servlet-name>-servlet.xml配置文件,然后也创建一个WebApplicationContext。这个WebApplicationContext将之前ContextLoaderListener创建的容器作为父容器。[b]因此在父容器中配置的所有Bean都能够被注入到子容器中;子容器中的bean,不能被父容器引用和使用。[/b]
可以参考一下另一篇文章:
[url]http://angie.iteye.com/blog/2334956[/url]
Spring的WebApplicationContext加载有2种:ContextLoaderListener和DispatcherServlet,在web.xml配置,ContextLoaderListener和DispatcherServlet有什么区别?
1 ContextLoaderListener
在我们的web容器启动的时候启动的,默认会加载/WEB-INF/下面的applicationContext.xml文件。并创建一个WebApplicationContext容器,是web的Root WebApplicationContext。
2 DispatcherServlet
在我们第一次访问我们的应用的时候创建的。这时候它默认会将配置在/WEB-INF下面的<servlet-name>-servlet.xml配置文件,然后也创建一个WebApplicationContext。这个WebApplicationContext将之前ContextLoaderListener创建的容器作为父容器。[b]因此在父容器中配置的所有Bean都能够被注入到子容器中;子容器中的bean,不能被父容器引用和使用。[/b]
可以参考一下另一篇文章:
[url]http://angie.iteye.com/blog/2334956[/url]

本文对比了Spring框架中两种WebApplicationContext加载方式:ContextLoaderListener和DispatcherServlet。前者在Web容器启动时加载根容器,后者在首次请求时创建,并将前者作为父容器。
491

被折叠的 条评论
为什么被折叠?



