Spring IOC流程
2022-08-16 10:57:59 9 举报
Spring IOC流程
作者其他创作
大纲/内容
填充属性
FactoryBean和BeanFactory的区别
BeanFactoryBean工厂,整个工厂的根接口,也是容器的入口
实例化
常见的接口
json
设置Aware接口的属性
BeanDefinition
增强Bean信息
PostProcessor(后置处理增强器)
properities
都是用来创建对象的当使用BeanFactory的时候必须遵守完整的创建过程,这个过程是由Spring管理的当使用FactoryBean的时候只需要调用getObject就可以返回具体的对象,这个对象的创建过程由用户自己来控制,更加灵活
BeanFactoryPostProcessor
yaml
Bean工厂实现应该尽可能地支持标准Bean生命周期接口。全套初始化方法及其标准顺序为(也是Bean的生命周期):1. BeanNameAware's setBeanName2. BeanClassLoaderAware's setBeanClassLoader3. BeanFactoryAware's setBeanFactory4. EnvironmentAware's setEnvironment5. EmbeddedValueResolverAware's setEmbeddedValueResolver6. ResourceLoaderAware's setResourceLoader (only applicable when running in an application context)7. ApplicationEventPublisherAware's setApplicationEventPublisher (only applicable when running in an application context)8. MessageSourceAware's setMessageSource (only applicable when running in an application context)9. ApplicationContextAware's setApplicationContext (only applicable when running in an application context)10.ServletContextAware's setServletContext (only applicable when running in a web application context)11.postProcessBeforeInitialization methods of BeanPostProcessors12.InitializingBean's afterPropertiesSet13.a custom init-method definition14.postProcessAfterInitialization methods of BeanPostProcessorsBeanFactory表示Bean工厂,所以很明显,BeanFactory会负责创建Bean,并且提供获取Bean的API
完整对象
BeanPostProcessor
Aware接口:用途是让Bean获取Bean工厂的信息在AbstractApplicationContext中的refresh()#prepareBeanFactory()添加了Aware接口执行的后置处理器,用于在扫描Bean的时候,判断Bean是否实现了Aware接口,如果实现了,就执行实现了对应Aware接口的方法
初始化
FactoryBean
完整BeanDefinition
BeanFactoryPostProcessor(一个或多个)
BeanPostProcessor:before
定义规范,方便扩展bean的配置
BeanPostProcessor:after
BeanFactory
(BeanDefinitionReader)主要定义从资源文件读取并转换为BeanDefinition的各种功能
populate
xml
Aware
在堆中开辟空间,对象属性值为默认值
BeanDefinitionReader
创建对象(反射)
Environment
增强BeanDefinition信息
执行init-method
0 条评论
下一页