Spring源码
2021-05-28 19:01:28 41 举报
SpringIOC
作者其他创作
大纲/内容
BeanPostProcesser
填充属性populateBean @Autowired@Value
BeanDefinitionScanner
事件
单列池一级存放完整的Bean
AnnotationConfigApplicationContext
工厂
getBean(\"foo\")
BeanDefinitionReader
二级未赋值属性的Bean
判断是不是FactoryBean getObject &从一级缓存中拿没有就CreateBean
修改
BeanDefinitionMap
BeanDfeinition:Spring顶层接口负责生产Bean所需的原料
反射
BeanFactory
IOC Container doCreateBean
finishBeanFactoryInitialization
循环依赖
Aware @PostConstruct InitializingBean initMethod
BeanFactory:Spring顶层工厂使用工厂 负责生产Bean
BeanDefinitionRegistryPostProcesser
ConfigurationClassPostProcesser负责解析配置类BeanFactoryPostProcesser
三级缓存存放能获取对象(本身、AOP代理对象)的函数接口
自己控制实例化过程
1.通过无参构造函数 默认 ClassName=bean定义.beanclassClass clazz=Class.forName(ClassName) clazz .newInstance(); 2.通过有参函数 ClassName=bean定义.beanclass Class claz z=Class.forName(ClassName) 3. 当自动装配 constractor... Constracor con=Class.getConstracor(agr....) con.newInstance();
AOP
ClassPathXmlApplicationContext
实例化CreateBeanInstance反射
三级缓存
JDK
BeanFactoryPostProcesser
XML/注解
BeanDefinitionRegistry
BeanDefinition
initMethod destory
InvokeBeanFacotyPostProcessers()
注册
map.get(\"foo\")
CGLIB
收藏
0 条评论
回复 删除
下一页