Spring配置初始化ApplicationContext

2023-04-12


Spring配置初始化ApplicationContext


关键字: Spring配置初始化ApplicationContext


1. 在struts-config.xml里,以插件的形式



1. < plug-in className="org.springframework.web.struts.ContextLoaderPlugIn" / >   
2.     < set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" / >   
3. < / plug-in >

这种方式如果没有配置contextConfigLocation的值,则会自动加载xx-servlet.xml.


xx的值是和web.xml里的配置org.apache.struts.action.ActionServlet的servlet-name的值一样


如下:xx的值也就是action,所以会自动加载action-servlet.xml





1. < servlet >   
2.     < servlet-name >action< / servlet-name >   
3.     < servlet-class >org.apache.struts.action.ActionServlet< / servlet-class >   
4.     < load-on-startup >1< / load-on-startup >   
5.   < / servlet >   
6.   < servlet-mapping >   
7.     < servlet-name >action< / servlet-name >   
8.     < url-pattern >*.do< / url-pattern >   
9.   < / servlet-mapping >


如果sturts-config.xml里配置了contextConfigLocation的值,那么就不会自动加载xx-servlet.xml了,而只会加载contextConfigLocation所指定的xml.


2. 第2种方式


在web.xml里配置Listener



1.    
2.         <  listener-class>org.springframework.web.context.ContextLoaderListenerlistener-class>   
3.     <  /  listener>

如果在web.xml里给该Listener指定要加载的xml,如:



1.    
2.         contextConfigLocationparam-name>   
3.         classpath*:spring/*.xml   
4.     context-param>

则会去加载相应的xml,而不会去加载/WEB-INF/下的applicationContext.xml。。但是,如果没有指定的话,默认会去/WEB-INF/下加载applicationContext.xml。


3. 第三种方式:ContextLoaderServlet


xml 代码




1. < servlet>     
2.         < servlet-name>context< / servlet-name>     
3.         < servlet-class>org.springframework.web.context.ContextLoaderServlet< / servlet-class>     
4.         < load-on-startup>1< / load-on-startup>     
5.     < / servlet>

这种方式和第二种Listener方式一样,唯一的区别就是用Listener方式初始化ApplicationContext,可以和用第一种方式(struts-config.xml里 plugin方式)同时存在,而ContextLoaderServlet则不可以和第一种方式同时存在


总结:


ContextLoaderServlet已经不推荐用了,它只是为了兼容低版本的servlet.jar才用的。


总的来说:Listerner要比Servlet更好一些,而且Listerner监听应用的启动和结束,而Servlet启动要稍微延迟一些。


本文仅代表作者观点,版权归原创者所有,如需转载请在文中注明来源及作者名字。

免责声明:本文系转载编辑文章,仅作分享之用。如分享内容、图片侵犯到您的版权或非授权发布,请及时与我们联系进行审核处理或删除,您可以发送材料至邮箱:service@tojoy.com