- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
spring集成web框架
Spring集成其他Web框架
虽然Spring本身也提供了一个功能非常强大的MVC框架,并且和Spring的IoC容器无缝集成,非常便于使用。不过,在实际情况中,我们还不得不考虑众多采用第三方MVC框架的Web应用程序,例如,采用Strtus、WebWork等。如果要将这些应用程序的逻辑组件和持久化组件纳入Spring的IoC容器中进行管理,就必须考虑如何集成这些第三方的MVC框架。Spring强大的集成和扩展能力使得集成第三方MVC框架成为轻而易举的事情。
与第三方MVC框架集成时,需要考虑的问题是如何在第三方MVC框架中访问Spring IoC容器管理的Bean,或者说,如何获取Spring IoC容器的实例。我们还要保证在第三方MVC框架开始处理用户请求之前,Spring的IoC容器必须初始化完毕。
有两种方式可以自动加载Spring的IoC 容器。一种是利用第三方框架的扩展点,实现加载Spring的IoC容器,例如,Struts就提供了Plugin扩展。第二种方式是在web.xml中定义Listener或Servlet,让Web应用程序一启动就自动加载Spring的IoC容器。这种方式较为通用,对于一些不太常见的第三方MVC 框架,也可以用这种方式来尝试与Spring集成。
如果正在使用基于Servlet 2.3或更高规范的Web服务器,则应当使用Spring提供的ContextLoaderListener来加载IoC容器,因为根据Servlet 2.3规范,所有的Listener都会在Servlet被初始化之前完成初始化。由于我们希望尽可能早地完成Spring IoC容器的初始化,因此,采用ContextLoaderListener加载Spring的IoC容器是最合适的。
采用ContextLoaderListener加载Spring的IoC容器时,在/WEB-INF/web.xml中定义如下。
?xml version=1.0 encoding=UTF-8?
!DOCTYPE web-app PUBLIC -//Sun Microsystems, Inc.//DTD Web Application 2.3//EN /dtd/web-app_2_3.dtd
web-app
??? ...
??? listener
??????? listener-class
??????????? org.springframework.web.context.ContextLoaderListener
??????? /listener-class
??? /listener
??? ...
/web-app
默认地,ContextLoaderListener会在/WEB-INF/目录下查找名为applicationContext. xml文件,作为Spring的XML配置文件加载。如果使用其他文件名,或者有多个XML配置文件,就需要预先在context- param中指定。
context-param
??? param-namecontextConfigLocation/param-name
??? param-value/WEB-INF/cfg1.xml,/WEB-INF/cfg2.xml/param-value
/context-param
如果使用的Web服务器还不支持Servlet 2.3规范,则无法使用Listener,也就无法通过ContextLoaderListener来加载Spring的IoC容器。为此,Spring 提供了另一个ContextLoaderServlet,以Servlet的形式来加载Spring的IoC容器。
servlet
??? servlet-namecontextLoader/servlet-name
??????? servlet-class
??????????? org.springframework.web.context.ContextLoaderServlet
??????? /servlet-class
??????? load-on-startup0/load-on-startup
/servlet
ContextLoaderServlet 查找Spring的XML配置文件的方式与ContextLoaderListener完全一致,不过,由于必须首先加载 ContextLoaderServlet,然后加载其他的Servlet,才能保证Spring的IoC容器在其他Servlet处理用户请求之前初始化完毕。因此,设置load-on-startup为0,表示Web服务器一启动就加载ContextLoaderServlet,对于其他的Servlet,load-on-start
文档评论(0)