欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

介绍Spring框架(一) 框架SpringEJB项目管理编程 

程序员文章站 2022-06-17 09:08:13
...
作者: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 mappin*品。
Sping真正的能帮助你针对问题实现最简单的可能解决方案。并且它的价值不仅仅在于此。

Sping能干什么?
Sping提供了很多功能,所以我依次快速描述一下主要领域。