Spring学习点滴,《Spring in Action》笔记(三) - 编程入门网
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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |