Spring框架学习-框架启动

IOC容器

  1. ioc容器
    ioc就是控制反转,就是将对象的创建和对象间管理管理交给Spring框架处理,我们只需要使用配置文件告诉框架对象与对象之间的关系就可以了;
  2. 对象与对象间关系如何表示?
    可以使用xml、properites文件等语义化文件表示
  3. 描述对象的关系的文件存放在那里?
    可能是classpath(这是最常用的)、filesystem、或者网络资源url上或ServletContext中等;
  4. 不同配置文件对对象的描述不一样,如何统一?
    不同配置文件对对象描述虽然不一样,但是在Spring内部都会使用BeanDefinition来统一描述对象关系
  5. 如何对不同的配置文件解析?
    使用不同的解析器解析不同的配置文件
  6. Spring框架启动过程
    对象关系的配置文件有xml、properties等;
    这些文件开发中绝大多数是放在项目等classpath中,当然也可以放在filesystem,网络等其他位置上;
    然后spring框架通过解析器reader来读取不同的配置文件;
    然后将文件中的配置信息统一解析成BeanDefinition放入BeanFactory中;
    在这里插入图片描述

IOC容器启动

我们以ClassPathXmlApplication方式启动Spring框架,来查看Spring框架的启动过程;

1、初始化资源加载器:ResourceLoader

它的主要功能就是用来读取框架的配置文件,这些配置文件有xml的properties的等;

2、设置配置文件路径:

设置框架配置文件所在位置,即xml或properties配置文件在项目中的位置;因为它里面配置了哪些类要交给框架管理以及这些对象之间的关系;

3、刷新并启动容器:refresh()

通过这个方法来调用AbstractBeanFactory的refresh方法,来创建容器,并解析上面的配置资源文件,将Bean资源加载到容器中;

  1. AbstractBeanFactory:定义启动模版步骤,委派子类实现模版中的方法
    创建BeanFactory,委派给子类创建(委派模式
  2. AbstractRefreshBeanFactory:
    创建BeanFactory;
    加载Bean资源BeanDefinition,委派给子类实现(委派模式
  3. AbstractXmlApplicationContext:
    选择XmlBeanDefinitionReader来读取资源文件就是配置的xml文件(策略模式);

  1. XmlBeanDefinitionReader:
    获取第二步xml配置文件位置,交给第一步配置的资源加载器成统一的资源,然后该类解析资源加载器中的资源生成Document对象;
    然后交给BeanDefinitionDocumentReader解析Document对象成Bean资源

  1. BeanDefinitionDocumentReader:
    该类将Document对象解析成BeanDefinition对象;
    然后将调用工具类BeanDefinitionReaderUtil将Bean资源放入创建好的BeanFactory中;

  1. BeanDefinitionReaderUtil:
    调用上面创建好的BeanFactory子类对象将Bean资源BeanDefinition放入其中;

  1. BeanFactory:
    该类中提供了一个map集合,用来保存所有的BeanDefinition
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值