• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

Spring Framework概述 (2)

发布: 2008-6-20 14:43 | 作者: 不详 | 来源: 测试时代编辑整理 | 查看: 98次 | 进入软件测试论坛讨论

领测软件测试网

public class GoogleSearchController implements Controller {
 	private IGoogleSearchPort google;
 	private String googleKey;
 	public void setGoogle(IGoogleSearchPort google) {
 	this.google = google;
 	}
 	public void setGoogleKey(String googleKey) {
 	this.googleKey = googleKey;
 	}
 	public ModelAndView handleRequest(HttpServletRequest request,
 	HttpServletResponse response) throws ServletException, IOException {
 	String query = request.getParameter("query");
 	GoogleSearchResult result =
 	// Google属性定义忽略
 	// 使用Google业务对象
 	google.doGoogleSearch(this.googleKey, query,start, maxResults, filter, restrict,
 	safeSearch, lr, ie, oe);
 	return new ModelAndView("googleResults", "result", result);
 	}
 }

这个代码的原型IGoogleSearchPort是一个GLUE web 服务代理,由一个Spring FactoryBean返回。然而,Spring IoC将这个控制器从底层web 服务库中隔离出来。也可以用一个简单的Java 对象、测试桩、模拟对象或者用像下面要讨论的EJB代理来实现这个接口。这个控制器没有包含资源查找;除了支持它的web 交互的必要代码外没有别的东西了。

Spring也提供了对数据绑定、表单、向导和更复杂的工作流的支持。马上要发表的这个系列文章中的一篇文章会详细讨论Spring MVC。

如果你的需求真的很复杂,你应该考虑Spring Web Flow,一个提供比传统web MVC框架更高层次web 工作流抽象的强大的框架,它的架构师Keith Donald会在最近的TSS文章上讨论它的。

一个不错的Spring MVC框架的入门材料是Thomas Risberg的Spring MVC指南(http://www.springframework.org/docs/MVC-step-by-step/Spring-MVC-step-by-step.html)。也可以看《Web MVC with the Spring Framework》 (http://www.springframework.org/docs/web_mvc.html)。

如果对你喜欢的MVC框架情有独钟,Spring的分层结构允许你使用MVC层以外的Spring的其他部分。我们有把Spring作为中间层管理和数据访问但在web 层使用Struts、WebWork、Tapestry或JSF的用户。

实现EJB

如果你选择使用EJB,Spring可以令你从EJB实现和客户端对EJB的访问中获益。将业务逻辑重构进EJB外观后的POJO 中是一个被广泛认同的最佳实践。(和其它实践相比,这使得对业务逻辑的单元测试更加容易,因为EJB极其依赖容器且很难独立测试。)Spring为会话bean和消息驱动bean提供了好用的超类,通过自动加载包含在EJB Jar 文件中的基于一个XML文档的BeanFactory来方便实现这点。

这意味着一个无状态的会话EJB可以这样来获得并使用一个协作者:

import org.springframework.ejb.support.AbstractStatelessSessionBean;
 	public class MyEJB extends AbstractStatelessSessionBean implements MyBusinessInterface {
 	private MyPOJO myPOJO;
 	protected void onEjbCreate() {
 	this.myPOJO = getBeanFactory().getBean("myPOJO");
 	}
 	public void myBusinessMethod() {
 	this.myPOJO.invokeMethod();
 	}
 }

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网