IOC 流程
2020-12-02 14:31:44 0 举报
ioc 流程图
作者其他创作
大纲/内容
添加图纸BeanDefinitionRegistryPostProcessor
读取成一个统一的东西BeanDefinition(封装了生产Bean的一切原料)
BeanDefinitionScanner 扫描
@注解
设计师 注册BeanDefinitionRegistry
修改Bean属性
填充属性@Autowiredprivate User user
比如getBean的时候实例化前后填充属性前后初始化前后..........AOP是bean的生命周期完成的时候用这个实现的
椅子店ApplicationContext
Bean
怎么把类变成bean交给ioc容器管理?
类
相当于
ClassPathXmlApplicationContext
BeanDefinitionRegistryPostProcessor
实例化 利用反射private User user反射之后是一个空壳
座子bean
package springTest2;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;@Configuration@ComponentScan(\"springTest2\")public class ConfigTest { @Bean(initMethod = \"init\
BeanDefinitionRegistry 注册
getBean
BeanDefinitionScanner扫描筛选自己喜欢的座子也就是加上@Component@bean的类
xml
流程
BeanFactory没有感情的生产机器负责生产bean
BeanPostProcessor Bean的扩展点后置处理器
设计师
循环依赖 A依赖B B依赖A导致Spring 无限循环getBeanA getBeanB如果让你们解决这个问题你们怎么解决加个出口不就行了所以Spring 出现了3个Map 也就是3级缓存
你要去买座子@componentclass(类)
工厂(BeanFactory)
bean 的生命周期 并不是说我们getBean 就能获取到Bean了 事情远远不像你想象中那么简单
put
图纸BeanDefinition里面有各种@lazy@scope
BeanFactoryPostProcessor后置处理器
getBean(user)
AnnotationConfigApplicationContext
注册
BeanDefinitionmap大名鼎鼎的一级缓存
初始化initMethod destory
销售一百种座子读BeanDefinitionReader配置类XML@注解
BeanDefinitionReader 读取
出现问题
一大堆Aware
IOC 管理bean的容器
100个只有10个自己喜欢
map.get(\"user\")
9次扩展点
两个非常重要的扩展节点
Annotation
座子店ApplicationContext(国际化)
修改需求座子退我要短的BeanFactoryPostProcessor
0 条评论
下一页