BeanDefition结构图

  • 即一个类变成容器中管理的过程 先是通过注解 扫描也好 @Service等 @Bean @Import等 扫描这些注意–>进而扫描类属性
    统一放到BeanDefition里类定义属性里
  • 遍历这个BeanDefitionMap 进行预先实例化检查过滤(比如配了没引jar包 过滤一些重复的)
  • 在预实例化前可以通过BeanPostProcesser 进行篡改修改字段属性,而按你修改后的属性进行实例化

一个类实例化过程

BeanFactoryPostProcesser

实例化之前篡改
一个类实例化过程

BeanPostProcessor

实例化之后 进行属性的字段的修改
一个类实例化过程

@import

ImportBeanDefinitionRegister
ImportSelector
都可以往DefintionMap里放信息
@Import
@Import(value={Inst.class}) Inst.class 只是一个普通的类
@Import(value={TulingImportBeanDefinitionRegister.class}) 导入的组件实现了ImportBeanDefinitionRegister接口
@Import(value ={TulingImportSelector.class}) 导入一个组件实现了ImportSelector

ImportBeanDefinitionRegister

一个类实例化过程

ImportSelector

一个类实例化过程

spring自动装配

是通过实现importSelector的注解方式来构建 类名数组
一个类实例化过程
数组中的类的名字是通过
springFactactories.loader来装载进来的

相关文章:

  • 2022-12-23
  • 2022-01-24
  • 2021-05-27
  • 2022-12-23
  • 2021-04-21
  • 2021-12-10
  • 2021-11-19
  • 2022-12-23
猜你喜欢
  • 2021-12-21
  • 2021-05-26
  • 2022-12-23
  • 2021-12-04
  • 2022-12-23
相关资源
相似解决方案