Spring IOC的加载过程
2022-03-31 11:15:34 0 举报
Spring IOC的加载过程
作者其他创作
大纲/内容
//负责解析配置的后置处理器ConfigurationClassPostProcessorBeanFactoryPostProcessor
BeanDefinitionScan
invokeBeanFactoryPostProcessors()
配置类@Configuration
类 class配置文件xml
加载
BeanDefinitionMap
可以由自己来控制创建bean的过程
BeanDefinitionRegitory
1、通过无参构造函数【默认】className = Definition.beanclassClass clazz=Class.forName(className);clazz.newInstance;2、通过有参函数className = Definition.beanclassClass clazz=Class.forName(className);//自动装配 constractorConstractor constractor =clazz.getConstractor(arg...)constractor. newInstance;
register();
BeanPostProcessor
循环依赖
提供生产Bean的一切信息
注册
ConfigurationClassPostProcessor
Bean
存在
1、调用initMethed destory2、众多的Aware3、@PostconstructInitializingBeaninitMethodName
解析@Autowired和@Value
实现
getBean()
DefaultListableBeanFactory
实例化
填充属性
简单工厂方法
docreateBean
初始化
反射
负责解析配置类
动态代理
IOC 容器
finishBeanFactoryInitialization()
@ComponentScan
AOP
BeanDefinitionReader
BeanDefinitionRegistoryPostProcessor注册bean定义
BeanFactory
BeanDefinition
getBean()判断是否符合bean标准判断是否单例 & 是否FactoryBeangetObject()返回真正的bean先从一级缓存拿,如果拿到直接返回没拿到调用docreateBean方法创建bean
cgilb
BeanFactoryPostProcessor修改bean定义
实际上getBean()
new AnnotationConfigApplicationContext()
0 条评论
下一页