介绍Spring框架(一)

作者:Rod Johnson 译者:蔡移华

你可能在这个夏天已经听到了Spring框架正在逼近的嗡嗡声。在本文中,我将介绍Spring是什么以及为什么我相信它有助于你开发J2EE应用。
仅仅是另外一个框架?
你可能一直在想“不就是另外一个框架”。当已经有很多开源(或者商业)J2EE框架时,为什么你还要读这篇文章,或下载Spring框架呢?
但我基于几个理由相信Spring是唯一的:
它的功能是其它很多流行的框架所不具备的。Spring主要提供了一种管理你的业务对象的方式。
Spring既有可扩展性,也是组件化的。Spring采用了分层架构,这意味着你能仅仅选择它的任何一部分单独使用,然而它的结构也是具备内在一致性的。所以你从你的学习曲线能获得最大价值。例如,你可以选择使用Sping仅仅为了简化JDBC的使用,你也可以选择使用Spring来管理你的所有业务对象。
它从基础向上的设计有助于你写容易测试的代码。Spring是可供测试驱动项目使用的理想框架。
Spring不是项目中必须依赖的框架。Spring是潜在的一站式商店,更多关注于典型应用的基础构造关系。它也提供其它框架没有的功能。
尽管它只是一个从2003年2月开始的开源项目,Sping有很长的传统。这个开源项目开始于我在2002年晚些时候出版的书《Expert One-on-One J2EE Design and Development》其中的基础构造代码。《Expert One-on-One J2EE》也表明在Sping之后的基本框架思想。然而,这些框架思想又追溯到2000年早些时候,它反映了我在一系列成功的商业项目中开发基础构造的经验。
自从2003年1月以来,Spring就落户于SourceForge。现在有10个开发人员,其中有6个是非常活跃的。

Spring框架的优点
在我们进入到细节之前,让我们先看看Spring能带给项目的一些好处:
Sping能有效的组织你中间层的对象,无论你是否选择使用EJB。如果你仅仅使用Struts或其它框架来连接特定的J2EE API,Spring takes care of plumbing that would be left up to you。
Sping能消除在很多项目中看到的Singleton的繁殖。依我的经验,这是一个主要问题,减少了易测性和面向对象。
通过在整个应用和项目中以一致的方式处理配置问题,Sping消除了使用多种自定义属性文件格式的需要。Ever wondered what magic property keys or system properties a particular class looks for, and had to read the Javadoc or even source code?使用Sping你只是看着类的JavaBean属性就可以了。控制倒转(下面讨论)的使用有助于这个简化。
Sping通过接口而不是类编程来减少代价,几乎是零,这样使好的编程实践便利。
设计Sping是为了使基于它构建的应用依赖于尽可能少的API。在Sping应用中的大多数业务对象不依赖于Sping。
使用Sping构建的应用很容易单元测试。
Sping是使用EJB成为一种实现选择,而不是应用架构的决定性因素。你可以选择实现如POJO或local EJB的业务接口而不影响调用的代码。
Sping有助于你不使用EJB解决很多问题。Sping能为很多Web应用提供EJB之外的合适选择。例如,Sping能使用AOP来进行事务管理而不使用EJB容器,甚至不需要JTA实现,如果你只需要在单个数据库上工作。
Sping为数据访问提供了一致性的框架,无论使用JDBC还是如Hibernate的O/R mapping产品。
Sping真正的能帮助你针对问题实现最简单的可能解决方案。并且它的价值不仅仅在于此。

Sping能干什么?
Sping提供了很多功能,所以我依次快速描述一下主要领域。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值