整合Spring与Struts的几种方法 - 编程入门网
整合Spring与Struts的几种方法时间:2011-03-14 FruitfulSpring与Struts对Model-View-Controller模式均提供了很好的支持。相比之下,Struts是一个比较单纯的MVC框架,在实际应用中,开发人员更喜欢使用Struts完成MVC的设计,因而在有必要对Spring与Struts进行整合。 整合的关键点在于:将Struts中Action的实例生成不再由Struts自己负责,而交于Spring容器去管理。因此,进行整合的一个技术前提是Struts中作为Controller的ActionServlet必须能够装载Spring的应用程序环境,而Spring的org.springframework.web.struts.ContextLoaderPlugin恰好提供了这种支持。在Struts的配置文件struts-config.xml中,将ContextLoaderPlugin注册即可,示例如下:
其中的config.xml是Spring的配置文件。 之后,我门可以采用三种方式之一来整合Spring和Struts: 1.Struts的Action继承Spring的ActionSupport类,并在Action中获取Spring的ApplicationContext。这是最简单的一种整合方式,但有三个缺点:第一,Struts与Spring紧密耦合,不能改换到其他IoC容器;第二,难以使用Spring AOP特性;第三,对于需要使用DispatchAction的Struts应用无能为力。 2.在Struts的配置文件中,以Spring的DelegatingRequestProcessor类代替Struts的RequestProcessor类,并在Spring的配置文件中定义与Struts配置文件中<action-mappings>对应的bean,从而将Struts的Action与Spring分开,并把Struts的动作置于Spring的控制之下。这种整合方式的优点是将不再依赖Spring这个特定的IoC容器,但必须依赖Struts的RequestProcessor类。 3.通过Spring的DelegatingActionProxy类代理Struts的动作,即在Struts配置文件中,定义<action-mappings>的type属性全部改为DelegatingActionProxy,而不是具体的类名,并在Spring配置文件中定义与Struts动作映射对应的bean,从而将Struts的Action与Spring分开,并把Struts的动作置于Spring的控制之下。无疑,这是最灵活的一种整合方式。 下面就通过HelloWorld示例来分析一下第三种整合方式的实施步骤。 Step 1:修改Struts的配置文件struts-config.xml
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |