spring组件

Spring 总共有十几个组件,但是真正核心的组件只有三个:Core、Context 和 Bean。它们构建起了整个 Spring的骨骼架构,没有它们就不可能有 AOP、Web 等上层的特性功能。
spring源码学习

模块 功能
Core 提供最基本框架功能,包括IoC、依赖注入等
Bean BeanFactory 工厂模式 ,它包含访问配直文件、创建和管理 bean 以及进行 Inversion of Control I Dependency Injection ( IoC/DI )操作相关的所有类
Context 以Core和Bean模块为基础,访问任何对象的媒介;ApplicationContext
Expression Language 模块提供了强大的表达式语言,用于在运行时查询和操纵对象。 它是 JSP 2.1 规范中定义的 unifed expression language 的扩展。

Spring 容器继承图:

spring源码学习

IoC模式(依赖、依赖倒置、依赖注入、控制反转)参考文档

  1. 依赖倒置原则(Dependency Inversion Principle)
    Robert Martin大师提出了面向对象设计原则----依赖倒置原则:   
    A. 上层模块不应该依赖于下层模块,它们共同依赖于一个抽象 
    B. 抽象不能依赖于具象,具象依赖于抽象
    理解:
    A.上层是使用者,下层是被使用者,这就导致的结果是上层依赖下层了,下层变动了,自然就会影响到上层了,导致系统不稳定,甚至是牵一发而动全身。那怎么减少依赖呢?就是上层和下层都去依赖另一个抽象,这个抽象比较稳定,整个就来说就比较稳定了。
    B.面向对象编程时面向抽象或者面向接口编程,抽象一般比较稳定,实现抽象的具体肯定是要依赖抽象的,抽象不应该去依赖别的具体,应该依赖抽象。
  2. 控制反转(IoC) Inversion of Control
    控制反转IoC是Inversion of Control的缩写,是说对象的控制权进行转移,转移到第三方,比如转移交给了IoC容器,它就是一个创建工厂,你要什么对象,它就给你什么对象,有了IoC容器,依赖关系就变了,原先的依赖关系就没了,它们都依赖IoC容器了,通过IoC容器来建立它们之间的关系。
  3. 依赖注入(DI)Dependency Injection
    依赖注入DI是Dependency Injection缩写,它提出了“哪些东东的控制权被反转了,被转移了?”,它也给出了答案:“依赖对象的创建获得被反转”。
    所谓依赖注入,就是由IoC容器在运行期间,动态地将某种依赖关系注入到对象之中。

总结: ioc的思想最核心的地方在于,资源不由使用资源的双方管理,而由不使用资源的第三方管理,这可以带来很多好处。第 一,资源集中管理,实现资源的可配置和易管理。第二,降低了使用资源双方的依赖程度,也就是我们说的耦合度

后续补充中…

相关文章: