快速业务通道

Spring学习点滴,《Spring in Action》笔记(三) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15

Spring学习点滴,《Spring in Action》笔记(三)

时间:2011-08-18 unmi.cc 隔叶黄莺

第十章. 使用其他 Web 框架

41. Spring 提供了两种与 Struts 集成的方式

1) 让你的 Action 继承 org.springframework.web.struts.ActionSupport

2) 将请求委托给作为 Spring Bean 管理的 Struts action 来自理(P312)

42. 为了让 Struts 能访问 Spring 管理的 Bean,必须在 struts-config.xml 中注册一个知道 Spring 上下文的 ContextLoaderPlugIn,用的是 WebApplicationContext:(P312)

<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">  

<set-propertyset-property="contextConfigLocation" value="/WEB-INF/training-

servlet.xml,/WEB-INF/..."/></plugin-in><plug-in 

className="org.springframework.web.struts.ContextLoaderPlugIn">  <set-

property="contextConfigLocation" value="/WEB-INF/training-servlet.xml,/WEB-

INF/..."/></plugin-in>

43. ActionSupport 重载了 setServlet()方法,获取bean的方式为调用 ActionSupport 的 getWebApplicationContext().getBean() (P313)

44. 继承 Spring 提供的 ActionSupport 让 Struts与Spring 紧密耦合,而且 Action 还负责查找 Bean,这也违背了IoC原则(P313)

45. 使用委托 Action:struts-config.xml 中每个 path 都指定 type 为 org.springframework.web.struts.DelegatingActionProxy,实际的 Action 实例由Spring 来管理,即 所有的 Action 实例是配置在 Spring 上下文文件中,它们之间用 path<->name 来映射,这种方 式并不好看(P315)

46. 使用请求委托,只在 struts-config.xml 中配置 DelegatingRequestProcess 或 DelegatingTilesRequestProcessor 作为控制器,其余配置不变,如<action path="/listCourses" type="com.unmi.MyCoursesAction"/> 其实 type 属性是被所配置的 controller 忽略掉了,所以可 省去 type属性,真正的Action也是由Spring来配置装配,也是通过 path--name 来对应。这种做法就是 不需要为每一个 <action .../> 指定 org.springframework.web.struts.DelegatingActionProxy 。(P315)

Spring学习点滴,《Spring in Action》笔记(三)(2)

时间:2011-08-18 unmi.cc 隔叶黄莺

47. 感觉 Spring 与 Struts 的搭配总有些牵强,没有一种更完美的方式。个人觉得使用请求委托更 合适些,一方面是不需要让 Struts 与 Spring 紧密耦合,其次是不需要为每一个 <action .../> 配置一个重复的 DelegatingActionProxy。

48. Spring 集成 Tapestry 的关键用一个知晓 Spring 的引擎替换掉 Tapestry 的缺省引擎。Spring 未提供这个东西,要自己实现,继承自 org.apache.tapestry.engine.BaseEngine,在引擎的 setupForRequest() 方法中,把 Spring 上下文放到 getGlobal() 对象中 让 Tapestry 随时可用。最后 用 engine-class 把这个引擎指定给 Tapestry 应用。(P316)

49. Spring 在集成 Struts/Tapestyr/JSF/WebWork 都需要在 web.xml 中配置 ContextLoaderListener。会对 JSF 有一个独立的项目 JSF-Spring (http://jsfspring.sourceforget.net)。集成 WebWork 1,要在 webwork.properties 中配置属性

webwork.action.factory=webwork.action.factory.SpringActionFactory。集成 WebWork 2 也有一 个 XWork/Spring 集成包(http://www.ryandaigle.com/pebble/images/webwork2-spring.jar),在 xwork.xml 中的 <package .../> 中配置属性

extern

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号