本文采用知识共享 署名-相同方式共享 4.0 国际 许可协议进行许可。
访问 https://creativecommons.org/licenses/by-sa/4.0/ 查看该许可协议。

1) 概述

  • 分层
  • Full-stack
  • 轻量级
  • 提供依赖注入和事务管理

1.1) 发展历程

  • 1997 IBM 提出 EJB 思想
  • 1998 SUN 指定开发标准规范 EJB1.0
  • 1999 EJB 1.1 发布
  • 2001 EJB 2.0 发布
  • 2003 EJB 2.1 发布
  • 2006 EJB 3.0 发布
  • Rod johnsonn(Spring 之父)
    • 2002 Expert One-to-One J2EE Design and Development
      阐述了 J2EE 使用 EJB 开发设计的有点以及解决方案
    • 2004 Expert One-to-One J2EE Development without EJB
      阐述了 J2EE 开发不使用 EJB 的解决方式(Spring 雏形)

1.2) 特点

  • IOC 解耦合
  • AOP 面向切面
  • 声明式事务
  • 对 JUnit 的测试支持
  • 整合第三方框架成本低
  • 设计模式源码教科书

1.3) 架构

404

2) 核心思想

2.1) IOC(Inversion of Control)

解决了传统开发需要手动频繁创建接口对象的问题
将控制权交给 Spring 解耦,且维护对象之间的依赖关系。
想使用对象只需要声明它从 Spring 取就好了,如声明一个接口,让 Spring 来管理使用哪个实现

2.2) DI(Dependancy Injection)

那么何为依赖注入呢,实际上 IOC 和 DI 描述的都是同一种思想,只是角度不同。
IOC 对象的角度分析,DI 为容器角度

2.2) AOP(Aspect oriented Programming)

AOP 是从 OOP(Object oriented Programming) 发展过来的,OOP 即封装继承多态,