Spring学习(零):咱们为何要学习Spring

序言

经过使用Spring的IoC容器,能够对这些耦合关系(对Java代码而言)实现一个简单的文本化的操做;便是说经过一个或几个XML文文件,咱们就能够方便的对应用对象的耦合关系进行浏览、修改和维护,这样能够在很大程度上简化应用的开发。而且,经过IoC容器实现的依赖反转,能够把依赖关系的管理从Java对象中解放出来交给IoC容器(即Spring框架)来完成,从而完成对象之间的关系解耦;让本来的对象-对象关系转化为对象-IoC容器-对象的关系,经过这种关系来体现Spring框架对应用平台的巨大做用。spring

对spring来讲,编程

  • 一方面,它经过IoC容器来管理POJO对象,以及它们相互之间的耦合关系,使企业的信息(数据)资源能够用简单的Java语言来抽象和描述;
  • 另外一方面,能够经过AOP,以动态和非侵人式的方式来加强服务的功能。

因此,咱们能够把IoC容器和AOP模块看作Spring的核心部分。做为核心,它们表明了最为基础的底层抽象,同时也是Spring其它模块实现的基础。虽然做为使用者的咱们大多数是开发者,只是在这两个模块的基础上进行相关的配置和使用,可是若是可以了解这两个核心模块的设计和实现,就像了解Linux核心的实现同样!毫无疑问,会让咱们对整个平台的了解更上一层楼,对平台的认识也更为全面和系统服务器

Spring总体架构草图

应用场景

Spring是一个轻量级的框架。在Spring这个一站式应用平台或框架中,其中的各个模块除了依赖IoC容器和AOP以外,相互之间并无很强的耦合性。Spring的最终目标是简化应用开发的编程模型。架构

它所提供的服务,能够贯穿应用到整个软件中,从最上层的WebUI到底层的数据操做,到其余企业信息数据的集成,再到各类J2EE服务的使用等等。这些企业应用服务,Spring都经过其特有的IoC容器和AOP模块实现。在实现过程当中,Spring没有把这种复杂性转换成本身被使用的复杂性,这点无疑是成功的,同时大大拓宽了Spring的应用场景。一方面,咱们能够把Spring做为一个总体来使用,另外一方面,也能够各取所需,把Spring的各个模块拿出来独立使用,提供服务的具体需求。框架

于是,在对Spring的使用中,咱们看到应用不多依赖于Spring特有的API;同时,因为spring自己的设计也是很是模块化的,这就为应用开发提供了EJB开发未曾提供的便利。模块化

Spring的价值

在对Spring的应用中,Spring团队为咱们列举了Spring的价值,很是值得参考:工具

  • Spring是一个非侵人性(non-invasive)框架,其目标是使应用程序代码对框架的依赖最小化,应用代码能够在没有Spring或者其余容器的状况下运行。
  • Spring提供了一个一致的编程模型,使应用直接使用POJO开发,从而能够与运行环境(如应用服务器)隔离开来。
  • Spring推进应用的设计凤格向面向对象及面向接口编程转变,提升了代码的重用性和可测试性。
  • Spring改进了体系结构的选择,虽然做为应用平台,Spring能够帮助咱们选择不一样的技术实现,好比从Mybatis切换到其余ORM工具,从SpringMVC切换到Struts,尽管咱们一般不会这样作,可是咱们在技术方案上选择使用Spring做为应用平台,Spring至少为咱们提供了这种可能性和选择,从而下降了平台锁定的凤险。

参考书籍:

《Spring技术内幕:深刻解析Spring架构与设计原理(第2版)》测试

相关文章
相关标签/搜索