• [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 类来完成,他把资源的加载、解析和资源的定义整合在一起便于其他组件使用。

      

  • 相关阅读:
    yarn : 无法加载文件 C:\Program Files\nodejs\node_global\yarn.ps1,因为在此系
    各种本地k8s运行总结对比
    K3S运行完整示范kubeexplorer、kubeapps
    使用python拆分PDF
    MyBatis 及 MyBatis Plus 纯注解方式配置(Spring Boot + Postgresql)
    HTTP/2 中的帧定义
    Nginx 面试40问 ( 收藏吃灰 )
    时序攻击(timing attack)
    使用 Playwright 进行 E2E 测试
    单元测试
  • 原文地址:https://www.cnblogs.com/fyql/p/11407142.html
Copyright © 2020-2023  润新知