`
gaoyuntao2005
  • 浏览: 303217 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

简介 Spring

阅读更多


入门 01 - 简介 Spring

 Spring是轻量级的J2EE应用程序框架。 
 Spring的核心是个轻量级容器(container),实现了IoC(Inversion of Control)模式的容器,Spring的目标是实现一个全方位的整合框架,在Spring框架下实现多个子框架的组合,这些子框架之间彼此可以独立,也可以使用其它的框架方案加以替代,Spring希望提供one-stop shop的框架整合方案
 Spring不会特别去提出一些子框架来与现有的OpenSource框架竞争,除非它觉得所提出的框架够新够好,例如Spring有自己的 MVC框架方案,因为它觉得现有的MVC方案有很多可以改进的地方,但它不强迫您使用它提供的方案,您可以选用您所希望的框架来取代其子框架,例如您仍可以在Spring中整合您的Struts框架。
 Spring的核心概念是IoC,IoC的抽象概念是「依赖关系的转移」,像是「高层模块不应该依赖低层模块,而是模块都必须依赖于抽象」是IoC的一 种表现,「实现必须依赖抽象,而不是抽象依赖实现」也是IoC的一种表现,「应用程序不应依赖于容器,而是容器服务于应用程序」也是IoC的一种表现。 
 IoC的概念与三种DI(Dependency Injection)类型在Martin Fowler的Inversion of Control Containers and the Dependency Injection pattern中得到清楚的阐释,您可以先在以下的网址中了解IoC与DI的详细说明:
http://www.martinfowler.com/articles/injection.html 
 您也可以先看看这些文章,了解一下Dependency Inversion:
http://www.objectmentor.com/publications/dip.pdf 
 Spring的核心即是个IoC/DI的容器,它可以帮程序设计人员完成组件(类别们)之间的依赖关系注入(连结),使得组件(类别们)之间的依赖达到 最小,进而提高组件的重用性,Spring是个低侵入性(invasive)的框架,Spring中的组件并不会意识到它正置身于Spring中,这使得组件可以轻易的从框架中脱离,而几乎不用任何的修改,反过来说,组件也可以简单的方式加入至框架中,使得组件甚至框架的整合变得容易。
 Spring最为人重视的另一方面是支持AOP(Aspect-Oriented Programming),然而AOP框架只是Spring支持的一个子框架,说Spring框架是AOP框架并不是一件适当的描述,人们对于新奇的 AOP关注映射至Spring上,使得人们对于Spring的关注集中在它的AOP框架上,虽然有所误解,但也突显了Spring的另一个令人关注的特 色。
 Spring也提供MVC Web框架的解决方案,但您也可以将自己所熟悉的MVC Web框架与Spring解合,像是Struts、Webwork等等,都可以与Spring整合而成为适用于自己的解决方案。
 Spring也提供其它方面的整合,像是持久层的整合如JDBC、O/R Mapping工具(Hibernate、iBATIS)、事务处理等等,Spring作了对多方面整合的努力,故说Spring是个全方位的应用程序框架。
 想要入门Spring,对于IoC/D I的了解是必要的,上面的两个网址是个好的开始,另外您也可以先看看「Spring开发指南」:
http://www.xiaxin.net/Spring_Dev_Guide.rar 
 如果您想了解Spring的整体观念,可以看看Expert One on one J2EE Development Without EJB这本书,Spring的前身是由该作者的前一本书Expert One on one J2EE Design and Development中的一个实际程序开始,Spring本身是J2EE的一个轻量级容器解决方案,从这本书了解J2EE程序设计的考量也是个不错的基础建构方式。
 当然,如果您时间有限,想直接了解Spring,可以从这篇文章开始:

http://javaboutique.internet.com/tutorials/spring_frame/ 
 对于Expert One on one J2EE Development Without EJB这本书,如果您想了解Spring,可以看chapter 7、chapter 13。
其它的参考文章,可以看看这个分区的「Spring」资料中的连结。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics