博主
258
258
258
258
专辑

第一节 Spring简史

亮子 2021-05-08 05:30:05 6723 1 1 0

1、Spring的产生

1)、Spring产生的背景

Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB(Enterprise JavaBean, EJB)完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。

从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。

  • 目的:解决企业应用开发的复杂性
  • 功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能
  • 范围:任何Java应用

总结:Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。

2)、Spring的产生

(1)创始人:Rod Jahnson

图片alt

(2)两本书

  • 《Expert One-on-One J2EE Design and Development》
  • 《Expert One-on-One J2EE Development without EJB》

(3)Sping的思想(概念)

  • 控制反转:Spring通过一种称作控制反转(Inversion of Control,即IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。

  • 面向切面:即面向切面编程,AOP为Aspect Oriented Programming的缩写。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。

  • 微服务:微服务不需要像普通服务那样成为一种独立的功能或者独立的应用。服务粒度越粗,就越难以符合规定原则。服务粒度越细,就越能够灵活地降低变化和负载所带来的影响。然而,利弊之间的权衡过程是非常复杂的,我们要在配置和资金模型的基础上考虑到基础设施的成本问题。

  • 容器:Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。

  • 框架:Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。

(4)Spring的初衷

  • JAVA EE开发应该更加简单。
  • 使用接口而不是使用类,是更好的编程习惯。Spring将使用接口的复杂度几乎降低到了零。
  • 为JavaBean提供了一个更好的应用配置框架。
  • 更多地强调面向对象的设计,而不是现行的技术如JAVA EE。
  • 尽量减少不必要的异常捕捉。
  • 使应用程序更加容易测试。

(5)Spring的目标

  • 可以令人方便愉快的使用Spring。
  • 应用程序代码并不依赖于Spring APIs。
  • Spring不和现有的解决方案竞争,而是致力于将它们融合在一起。