一个类实例化过程

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来装载进来的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值