自从这篇文章的第一版在2003 年10 月发表以来,Spring 框架正在逐步普及。经历了1.0最终版到现在的1.2版,而且被运用于很多行业和项目中。在这篇文章中,我会解释Spring为什么会获得成功,并告诉你我十分肯定它能帮助你开发J2EE应用程序。
又是一个框架?
你可能正在想“不过是另一个的框架”。如今有这么多J2EE 框架,并且你可以建立你自己的框架,为什么你应该读这篇文章或者下载Spring框架(或者你还没有下载)?社区中持续的高关注度暗示了Spring一定有它的价值;这也有很多技术原因。
以下的几个原因让我相信Spring是独一无二的:
它关注于很多其它框架没有关注的地方。Spring 着重于提供一种管理你业务对象的方法。
Spring是全面的、模块化的。Spring采用分层架构,这意味着你可以仅选择其中任何一个独立的部分,而它的架构是内部一致的。因此你能从学习中获得最大的价值。例如,
你可以仅用Spring 来简化你的JDBC 使用,或者你可以选择使用Spring 来管理你的业务对象。把Spring增量地引入现有的项目中是十分容易的。
Spring从设计之初就是要帮助你写出易于测试的代码。Spring是测试驱动项目的一个理想框架。
Spring是一个日益重要的集成技术,它的角色已得到一些大厂商的认可。
Spring不需要你的项目再依赖于另一个框架。Spring也许能称得上是一个“一站式”商店,提供了大多数传统应用所需要的基础结构。它还提供了别的框架没有涉及到的东西。
作为一个从2003 年2 月开始的开源项目,Spring 有深厚的历史背景。这个开源项目源自我在2002年底出版的《Expert One-on-One J2EE Design and Development》中的基础代码。书中展现了Spring背后的基础性架构思考。然而,这个架构概念可以追溯到2000 年早期,并反映了我在一系列成功的商业项目的基础结构的开发中所获得的经验。
从2003 年1 月起,Spring 落户于SourceForge。现在有20 位开发者,一些主要人员把所有的时间都花在了Spring 的开发和支持上。繁荣的开源社区帮助它茁壮成长,这远非任何个人所及。
Spring架构上的好处
在继续深入前,让我们来看看Spring带给一个项目的好处:
Spring可以有效组织你的中间层对象,无论你是否选择使用EJB。Spring关心那些当你只选择Struts 或其他为J2EE API 量身定做的框架时被留给你解决的问题。Spring 的配
置管理服务可以被运用于任何运行环境的各种架构性分层中,这也许是中间层中最有价值的。
Spring可以消除在很多项目中所常见的单例的过度使用。在我看来,它的主要问题是降低了可测试性和面向对象的程序。
Spring通过一种在应用程序和项目之间一致的方法来处理配置,这消除了需要自定义配置文件格式的烦恼。还记为了知道某个类要找哪个神奇的属性项或系统属性而不得不去读Javadoc,甚至读源代码吗?有了Spring你只要简单地看看类的JavaBean属性或构造参数。控制反转和依赖注入(将在下文讨论)的使用帮助实现了这一简化。
Spring通过把针对接口而非类编码的代价降低到几乎未零来帮助养成好的编码习惯。
Spring被设计为让构建在它之上的应用程序尽可能少地依赖于它的API。大多数Spring应用程序中的业务对象不依赖于Spring。
构建于Spring之上的应用程序很容易进行单元测试。
Spring 使得是否使用EJB 成为实现时的选择,而非架构上的决定。你能在不改变调用代码的情况下选择用POJO 或EJB来实现业务接口。
Spring帮助你在不用EJB的情况下解决很多问题。Spring能提供一种适用于很多应用程 序的EJB的替代品。例如,Spring可以无需EJB容器,用AOP来提供声明性事务管理;如果你仅与一个数据库打交道,甚至可以没有JTA 实现。
Spring 为数据访问提供了一个一致的框架,无论使用JDBC还是像TopLink、Hibernate 或者JDO实现这样的实体关系映射产品。
Spring为很多方面提供了一种一致的简单的编程模型,这使得它成为了一种理想的架构“胶”。你可以从Spring访问JDBC、JMS、JavaMail、JNDI和很多其他重要API的途径中发现这种一致性。
Spring是一种帮助你使用POJO 来构建应用程序的基础技术。要达到这个目标需要一个能将复杂性隐藏起来的成熟的框架。
因此Spring 真的可以帮助你实现针对你的问题的最简单可行的解决方案。这是十分有价值的。
文章来源于领测软件测试网 https://www.ltesting.net/