SPRING框架——由来和发展
Spring是java平台上的一个开源应用框架它的第一个版本是由Rod Johnson写出来的Rod在他的Expert OneOnOne Java EE Design and Development(Java企业应用设计与开发的专家一对一)一书中首次发布了这个框架该框架也可以移植到NET的环境下
Spring的框架首次在年月的Apache 的使用许可中发布第一个具有里程碑意义的版本是年月发布的年月和年月先后又有重要的版本面世
Spring框架本身并没有强制实行任何特别的编程模式在Java社区里Spring作为EJB模型之外的另外一个选择甚至是替代品而广为流行从设计上看Spring给予了Java程序员许多的自由度但同时对业界常见的问题也提供了良好的文档和易于使用的方法
Spring框架的核心功能在任何Java应用中都是适用的在基于Java企业平台上的web应用中大量的拓展和改进得以形成为此Spring获得了广泛的欢迎并被许多公司认可为具有战略意义的重要框架
Spring框架的历史
Spring框架最开始的部分是由Rod Johnson于年为伦敦的金融界提供独立咨询业务时写出来的在《Java企业应用设计与开发的专家一对一》一书中Rod进一步拓展了他的代码以阐述如何让应用程序能以超出当时大众所惯于接受的易用性和稳定性与JEE平台上的不同组件合作的观点
在年web应用的主流编程模式为Java Servlet API和EJB两者都是由太阳微系统公司与其他一些开发商和利益团体提出的并在Java业界里获得了广泛的共识那些非Web的应用比如用户端的或批处理的应用也可以基于能够提供所需功能的开源或商用工具和项目
基于最优方法并适用于各种应用类型的Spring框架的建立要归功于Rod Johnson这些想法也在他的书中得以阐述书发表后基于读者的要求源代码在开源使用协议下得以提供
一批自愿拓展Spring框架的程序开发员组成了团队年月在Sourceforge上构建了一个项目在Spring框架上工作了一年之后这个团队在年月发布了第一个版本()这个版本之后Spring框架在Java社区里变得异常流行部分的要归结于它好于一般水准的文档功能和参考文献特别是对于一个开源项目而言尤其如此
但是Spring框架在年也备受批评有时它也成为热烈争论的主题Spring的第一个版本发布时许多程序员和领先的设计人员把它看作是远离传统编程模式的一步;特别是对于EJB而言尤其如此Spring框架的一个重要设计目标就是更容易地与已有的JEE标准和商用工具整合在很大程度上这个目标使得通过受争议的官方委员会控制的规范文档来定义功能变得可有可无
Spring框架使之前并不受欢迎的技术在短时间内迅速走红最有名的例子就是反向控制(IOC)年Spring框架的采用率非常之高;通过推出自身的AOP(面向方向的编程)Spring使AOP整体而言在Java社区里广受欢迎
年Spring因具有里程碑意义的新的版本的推出更多功能的添加从而得到了比年更高的采用率年底创建的Spring论坛也对框架的推广而推波助澜论坛对广大用户而言已经成为最重要的信息和帮助的源泉
年Spring框架的开发人员成立了自己的公司来提供对Spring的商业支持其中最显着的就是与BEA的合作年月第一个Spring会议在迈阿密举行天的课程吸引了名开发人员年月在安特卫普召开的会议有多名开发人员
Spring框架的主要功能
; 基于Java Beans的配置管理采用IOC的原理特别是对依赖注射技术的使用这些都用来减少各组件间对实施细则的相互依赖性
; 一个核心的全局适用的bean工厂
; 一个一般抽象化的层面来管理数据库间的数据处理
; 建立在框架内的对Java数据处理API和单独的JDBC数据源的一般性策略因此在数据处理支持上对Java企业版本环境的依赖性得以消除
; 和一些可持续性的框架如HibernateJDOiBATIS和dbo的整合
; web应用中的MVC框架基于核心的Spring功能支持多种产生视图的技术包括JSPFreeMarkerVelocityTilesiText和POI
; 大量的AOP框架以提供诸如数据处理管理的服务同IOC的功能一样目的是提高系统的模块化程度
Spring 框架的七个模块
Spring 框架是一个分层架构由 个定义良好的模块组成Spring 模块构建在核心容器之上核心容器定义了创建配置和管理 bean 的方式如图 所示
``````````````````````
组成 Spring 框架的每个模块(或组件)都可以单独存在或者与其他一个或多个模块联合实现每个模块的功能如下
核心容器核心容器提供 Spring 框架的基本功能核心容器的主要组件是 BeanFactory它是工厂模式的实现BeanFactory 使用控制反转 (IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开
Spring 上下文Spring 上下文是一个配置文件向 Spring 框架提供上下文信息Spring 上下文包括企业服务例如 JNDIEJB电子邮件国际化校验和调度功能
Spring AOP通过配置管理特性Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中所以可以很容易地使 Spring 框架管理的任何对象支持 AOPSpring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务通过使用 Spring AOP不用依赖 EJB 组件就可以将声明性事务管理集成到应用程序中
Spring DAOJDBC DAO 抽象层提供了有意义的异常层次结构可用该结构来管理异常处理和不同数据库供应商抛出的错误消息异常层次结构简化了错误处理并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)Spring DAO 的面向 JDBC 的异常遵从通用的 DAO 异常层次结构
Spring ORMSpring 框架插入了若干个 ORM 框架从而提供了 ORM 的对象关系工具其中包括 JDOHibernate 和 iBatis SQL Map所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构
Spring Web 模块Web 上下文模块建立在应用程序上下文模块之上为基于 Web 的应用程序提供了上下文所以Spring 框架支持与 Jakarta Struts 的集成Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作
Spring MVC 框架MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现通过策略接口MVC 框架变成为高度可配置的MVC 容纳了大量视图技术其中包括 JSPVelocityTilesiText 和 POI
Spring 框架的功能可以用在任何 JEE 服务器中大多数功能也适用于不受管理的环境Spring 的核心要点是支持不绑定到特定 JEE 服务的可重用业务和数据访问对象毫无疑问这样的对象可以在不同 JEE 环境 (Web 或 EJB)独立应用程序测试环境之间重用
Spring框架的主要功能