• Spring容器的原理


    1、Spring 的 IoC 容器是一个提供IoC支持的轻量级容器,除了基本的 IoC 支持,还提供了相应的 AOP 框架支持、企业级服务集成等服务。Spring提供了两种容器类型:BeanFactory 和 ApplicationContext。

    2、容器的作用,是以某种方式加载 Configuration Metadata(通常也就是XML配置信息),然后根据这些信息绑定整个系统的对象,最终组装成一个可用的基于轻量级容器的应用系统。

    3、容器的实现以上功能的过程,可以分为两个阶段,即 容器启动阶段 和 Bean 实例化阶段。

    4、以下对两个阶段内容做简单介绍,详细的执行流程请查看 https://www.cnblogs.com/bsyt/p/13162588.html

    一、容器启动阶段:

    ​ 1、资源加载,通过某种途径加载 Configuration MetaData(配置信息)

    ​ 2、解析配置信息,封装为 BeanDefinition(bean 的描述信息,用于实例化)

    ​ 3、注册 BeanDefinition 到 BeanDefinitionRegistry (其实就是保存解析好的 BeanDefinition)

    ​ *4、插手“容器的启动”,Spring提供了一种BeanFactoryPostProcessor的容器扩展机制,该机制允许我们开发者在容器实例化对象之前,对注册到容器中的 BeanDefinition 进行修改

    ​ final、该阶段为准备性阶段,侧重于对象管理信息的收集

    二、Bean 实例化阶段

    ​ start、通过调用容器的 getBean("xxx") 明确请求获取某个对象,触发该阶段

    ​ 1、检查所请求的对象是否已经初始化过,初始化过且为单例,直接返回对象

    ​ 2、未初始化过,则根据对应的 BeanDefinition 提供的信息实例化该对象

    ​ 3、设施对象属性,为该对象注入依赖对象,如果依赖的对象未实例化,则想递归实例化依赖的对象

    ​ 4、如果对象实现了某些回调接口,则根据回调接口的要求来装配它

    ​ *5、BeanPostProcessor 会处理容器中所有符合条件的实例化后的对象,提供了连个接口分别在不同的时机执行

    ​ 6、对象实例化成功后,直接返回对象(如果是单例,这保存对象)

    三、写在最后

    跳转目录:https://www.cnblogs.com/bsyt/p/13162588.html

  • 相关阅读:
    linux系统调用之系统控制
    linux系统调用之文件系统操作
    使用EF框架实现MVC的增删改查功能
    MVC+EF快速弄出一个CRUD
    Entity Framework 全面教程详解(转)
    微信小程序学习
    为Bootstrap模态对话框添加拖拽移动功能
    Razor语法大全
    EXCEL怎么打20位以上的数字?
    C# SQLite 数据库操作学习
  • 原文地址:https://www.cnblogs.com/bsyt/p/13283637.html
Copyright © 2020-2023  润新知