目录
  1. 1. Java框架发展
  2. 2. Spring框架
Spring揭秘-Spring框架介绍

该系列文章,来源于《Spring 揭秘》这一书籍,在此致谢,版权归原作者完全所有,若感兴趣,请买原作者书籍。

Java框架发展

J2EE作为一种企业级应用开发平台,其优异表现是我们有目共睹的。但纵使是最为强大的军队, 如果没有一个好的指挥官,不知道如何发挥这支军队的强大战斗力,那这支军队也不可能取得太多辉煌的战果。在J2EE平台的一些早期实践中,就出现了对J2EE平台所提供的各项服务的滥用,将基于J2EE 平台的企业级开发带入了窘境。
Spring是于2003年兴起的一个轻量级的Java开发框架,由Rod Johnson在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它的最初目的主要是为了简化Java EE 的企业级应用开发,相对于过去EJB时代重量级的企业应用开发而言,Spring框架的出现为曾经阴霾的天空带来了灿烂的阳光。
注:EJB1.x和2.x版本是重量级得框架,因为EJB3现在已经受Spring框架的影响,也主打基于POJO的轻量级应用解决方案了。

Spring倡导一切从实际出发,以实用的态度来选择适合当前开发场景的解决方案。如果不需要用到分布式架构,那就没有必要使用EJB之类的“牛刀”。而大多数的J2EE应用也确实不需要在开发初期或者整个生命周期内引入任何分布式架构。这个时候,采用敏捷、轻量级的开发方案可以收到更好的效果。 Spring所倡导的J2EE轻量级应用解决方案顺应天时,自然得以快速崛起。
但是没有任何一种解决方案是普遍适用的,只有适用于特定场景的解决方案,脱离具体场景来讨论任何解决方案都是脱离实际的表现。Spring并不是要替代EJB,而是给出EJB之外的另一种方案而已,甚至于二者可以是互补的。如果某一场景下EJB依然是最为合适的解决方案,那么我们可以毫不迟疑地使用它;同样地,对于Spring的使用也应该考虑到具体的应用场景,这一点应该是需要我们始终牢记的。

Spring框架

  1. 组成整个Spring框架的各种服务实现被划分到了多个相互独立却又相互依赖的模块当中。正如我们在图中所见到的那样,这些模块组成了Spring生命之树的枝和干,说白了也就是它们组成了Spring框架的核心骨架。抓住了这副骨架,也就抓住了Spring框架的学习主线。

  2. 整个Spring框架构建在Core核心模块之上,它是整个框架的基础。在该模块中,Spring为我们提供 了一个IoC容器(IoC Container)实现,用于帮助我们以依赖注入的方式管理对象之间的依赖关系。对 Spring的IoC容器的介绍将成为我们此次Spring之旅的第一站。除此之外,Core核心模块中还包括框架内部使用的各种工具类,比如Spring的基础IO工具类等。

  3. 沿着Spring生命之树往上左序遍历,我们将来到AOP模块。该模块提供了一个轻便但功能强大的AOP框架,让我们可以以AOP的形式增强各POJO的能力,进而补足OOP/OOSD之缺憾。Spring的AOP框架符合AOP Alliance规范,采用Proxy模式构建,与IoC容器相结合,可以充分显示出Spring AOP的强大威力。

  4. 继续上行,Spring框架在Core核心模块和AOP模块的基础上,为我们提供了完备的数据访问和事务管理的抽象和集成服务。在数据访问支持方面,Spring对JDBC API的最佳实践极大地简化了该API的使用。除此之外,Spring框架为各种当前业界流行的ORM产品,比如Hibernate、iBATIS、Toplink、JPA等提供了形式统一的集成支持。Spring框架中的事务管理抽象层是Spring AOP的最佳实践,它直接构建在Spring AOP的基础之上,为我们提供了编程式事务管理和声明式事务管理的完备支持。这些服务极大地简化了日常应用开发过程中的数据访问和事务管理工作。

  5. 为了简化各种Java EE服务(像JNDI、JMS以及JavaMail等)的使用,Spring框架为我们提供了针对这些Java EE服务的集成服务。在Spring的帮助下,这些Java EE服务现在都变得不再烦琐难用。使用Spring框架构建的基于POJO的应用程序如果也需要远程访问或者公开一些服务的话,Spring的Remoting框架将帮助它完成这一使命。

  6. 最后要提到的就是Web模块。在该模块中,Spring框架提供了一套自己的Web MVC框架,职责分明的角色划分让这套框架看起来十分地“醒目”。Spring的Portlet MVC构建在 Spring Web MVC之上,延续了Spring Web MVC的一贯风格。Spring Web MVC并不排斥现有的其他Web框架,像Struts、WebWork 以及JSF等;Spring的Web框架都为它们提供了集成支持。除此之外,像Web开发中可能牵扯的各种视图(View)技术,Spring Web框架更是给予了足够的重视。

  7. 就像一棵树必须依赖强大的根基才能生长繁盛一样,Spring框架内的各个模块也是如此。理论上来说,上层的模块需要依赖下层的模块才能正常工作,这就是为什么说这些模块是相互依赖的。不过,近乎处于同一水平线的各个模块之间却可以认为是相互独立的,彼此之间没什么瓜葛。从这个角度看,这些模块之间的相互独立一说也是成立的。

以上就是对整个Spring框架的总体介绍。

文章作者: 李浩
文章链接: https://leehoward.cn/2019/10/22/Spring揭秘-Spring框架介绍/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 leehoward
打赏
  • 微信
  • 支付宝

评论