首页 > 技术文章 > spring第一节-学习源码的思路和对应的几个简单问题

xiaoshahai 2022-02-17 16:33 原文

学习心态

  1. 明确主线和分支,先主线,后求细
  2. 课后主动跟一边源码,自己能走通才是真的通

学习源码的意义

  1. 提升阅读代码的能力,学习别人的代码才能更好的写代码
  2. 对框架有深层的理解
  3. 面试
  4. 为阅读别的框架源码打下基础

几个简单的问题

  1. 简述beanFactory:生产bean的工厂,主要作用是bean的生产和装配

  2. 简述beanFactory和applicationContext的区别:beanFactory如上,applicationContext不仅包含beanFactory生产bean的功能,还包括bean生命周期的管理,自动注册beanPostProcessor,beanFactoryPostProcessor,国际化,和内部发布机制

  3. 简述springioc的加载过程:主要包括定位,解析,注册,实例化

    1. 定位:资源文件定位,主要包括bean的xml,@Configuration,javaConfig
    2. 解析:解析资源文件通过beandefinitionReader
    3. 注册:将beanDefinition的name放到map里,bean的注册实在beanfactory中完成
    4. 实例化:在beanfactory的geiBean中完成初始化
  4. bean的生命周期

    ​ 定位,解析,注册,实例化 -------------> 设置对象属性 ----->通过后置处理器实现bean的诸多aware接口 -------------------> 初始化 ----> 讲bean放入单例池中

  5. spring中有哪些扩展接口和调用时机

    1. postConstruct注解,在bean的属性都设置好后被调用,完成一些初始化工作
    2. applicationContextAware接口,只要bean实现了这个接口,就能在bean被加载过程中获取上下文
    3. 具体可以看 https://blog.csdn.net/windrui/article/details/105549010。简单了解就好

推荐阅读