[Java复习] Spring Framework 框架小结

Spring 总共大约有 20 个模块,由 1300 多个不同的文件构成。

而这些组件被分别整合在

  核心容器 (Core Container),

  AOP(Aspect Oriented Programming),

  设备支持(Instrumentation),

  数据访问及集成(Data Access/Integeration)- JDBC, ORM, JMS, Transactions,

  Web - WebMVC, WebSocket,

  报文发送(Messaging),

  Test,这6个模块集合中。

以下是 Spring 5 的模块结构图:

Spring设计理念:

Spring 框架中的核心组件有三个:Core、Context 和 Beans。它们构建起了整个 Spring 的骨骼架构。

Bean 在 Spring 中作用就像 Object 对 OOP 的意义一样,没有对象的概念就像没有面向对象编程,Spring 中没有 Bean 也就没有 Spring 存在的意义。

Bean:包装Object和数据。像演出中的演员
Context:发现bean之间关系,Context是Bean的关系集合,IoC容器。像演出中的舞台
Core:就是发现、建立和维护每个bean之间关系的一些工具,像Util工具包。像演出中的道具

  Bean组件:

   Bean 组件在 Spring 的 org.springframework.beans 包下。这个包下的所有类主要解决了三件事:Bean 的定义、Bean 的创建以及对 Bean 的解析。

   Spring Bean 的创建时典型的工厂模式,它的顶级接口是 BeanFactory。

    Bean的定义:就是完整的描述了在Spring的配置文件中你定义的 <bean/> 节点中所有的信息,包括各种子节点。
                           当Spring成功解析你定义的一个<bean/>节点后,在Spring的内部就被转化成BeanDefinition对象。以后所有的操作都是对这个对象完成的。

  Context组件:

   Context 在 Spring 的 org.springframework.context 包下,它实际上就是给 Spring 提供一个运行时的环境,用以保存各个对象的状态。

    ApplicationContext 是 Context 的顶级父类,他除了能标识一个应用环境的基本信息外,他还继承了几个接口,主要是扩展了 Context 的功能。

    总体来说 ApplicationContext 必须要完成以下几件事:

  •     标识一个应用环境
  •     利用 BeanFactory 创建 Bean 对象
  •     保存对象关系表
  •     能够捕获各种事件

   Context作为Spring 的Ioc容器,基本上整合了Spring 的大部分功能的基础。

  Core组件:

   Core 组件作为 Spring 的核心组件,他其中包含了很多的关键类,其中一个重要组成部分就是定义了资源的访问方式。

   Resource接口封装了各种可能的资源类型,也就是对使用者来说屏蔽了文件类型的不同。

   Context是把资源的加载、解析和描述工作委托给了 ResourcePatternResolver 类来完成,他把资源的加载、解析和资源的定义整合在一起便于其他组件使用。

  

原文地址:https://www.cnblogs.com/fyql/p/11407142.html