spring知识点梳理

谈谈spring IOC 的 理解,原理与实现

  • 控制反转:理论思想,原来的对象是由使用者来进行控制,有了spring后,可以把整个对象交给spring帮我们创建
    控制反转-DI:依赖注入,把对应的属性的值注入到具体的对象中,@Autowired 完成属性值得注入
  • 容器:存放对象,使用map结构存储,在spring中一般存在三级缓存,在singletonObjects存放完整的bean对象。整个bean的生命周期从创建到使用,到销毁的过程全部有容器来管理(bean的生命周期)
  • 容器对象的创建:
    1.最上层有个BeanFactory,这个只是一个接口,一般使用多的是DefaultListableBeanFactory,在创建的时候,会向bean工厂中设置一些参数(BeanPostProcessor,Aware接口的子类)等属性


    BeanFactory继承体系.png
  1. 加载解析bean对象,准备要创建的bean对象的定义对象beanDefinition(xml或者注解方式)
  2. beanFactoryPostProcessor的处理
  3. BeanPostProcessor的注册功能,方便后续对bean对象完成具体的扩展功能

5.通过反射方式将BeanDefinition对象实例化成具体的bean对象
6.bean对象的初始化过程(填充属性,调用Aware子类的方法,调用BeanPostProcessor前置处理方法,调用init-method 方法,调用BeanPostProcessor的后置处理方法)

  1. 生成完整的bean对象,通过getBean方法可以直接获取
  2. 销毁过程。

谈一下对spring IOC的底层实现

spring bean的生命周期

bean的生命周期指的是Bean从创建到销毁的整个过程,分为4大部分

  • 实例化
  • 属性赋值
  • 初始化
  • 销毁
    1、bean对象实例化
    2、封装属性
    3、如果bean实现BeanNameAware执行setBeanName
    4、如果Bean实现BeanFactoryAware或者ApplicationContextAware设置工厂setBeanFactory或者setApplicationContext
    5、如果存在类实现BeanPostProcessor,执行postProcessorBeforeInitialization
    6、如果bean实现InitializitionBean执行afterPropertiesSet
    7、调用bean init-method方法
    8、如果类实现BeanPostProcessor,执行postProcessorAfterInitializaiton
    9、执行业务逻辑
    10、如果bean实现DisposableBean执行destory
    11、调用bean destory-method 方法
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容