Spring -> Spring容器启动流程是怎样的

Spring容器启动流程是怎样的

  • 在创建Spring容器,也就是启动Spring时:

    • 创建beanFactory工厂,用来生产Bean
    • 注解读取器,读取那些@Service丶@Component注解
      • Spring的IOC容器是不读取controller层
      • controller层是SpringMVC容器(IOC的子容器)中加载的
    • 路径扫描器,我们不仅要扫描当前主类包下的,还要扫描一些我们指定路径下的Class文件
    • 还有解析一些配置类,就是@Configuration标注的那些Bean
  • 之后就是核心的refresh容器刷新,refresh方法里面就有好多步骤,注册一些组件

    • BeanFactory后置处理器 -> BeanFactoryPostProcessor,可以修改BeanDefinition的元数据,比如单例的Bean改成原型
    • Bean后置处理器 -> BeanPostProcessor,这里可以依赖注入丶动态代理,等一下创建Bean要用的
    • 把一些用得到的组件加载好
  • 然后所有的单例Bean进⾏getBean()创建,对于多例Bean什么时候用就什么时候创建了

  • 接着整个创建Bean的⽣命周期,这期间包括了推断构造⽅法、实例化、依赖注入、初始化前、初始化、初始化后,初始化后这里有AOP就生成代理对象,完成后讲Bean对象保存到容器的Map中

  • 所有单例Bean创建完了之后

  • finishRefresh(),最后一次刷新,清理一下缓存(循环依赖三级缓存)丶重置一下事件(标志我完成了),Spring启动

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值