SpringIoc加载流程
2021-01-11 11:41:17 0 举报
springioc 加载流程
作者其他创作
大纲/内容
@Bean<bean/>@Lazy
初始化的生命周期接口调用
实例化完成但是没有自动装配就是纯净态
普通图纸
earlySingletonObjects
invokeAwareMethods
setBeanFactory
propertyValues
创建完成
destroy-method
InstantiationAwareBeanPostProcessor
被注解标注的方法
BeanDefinitionRegistryPostProcessor
setMessageSource
BeanFactory和FactoryBean的区别:虽然名字很像,容易混淆,但是完全2个东西。BeanFactory是Bean的工厂,spring的顶层核心接口,没有BeanFactory就没有Bean的存在,重要程序可想而知。FactoryBean也是一个接口,被他修饰的Bean将成为一个特殊的Bean,原本的Bean将被隐藏,而是由FactoryBean的getObject返回最终Bean。你就把FactoryBean当做改装车行,它可以改装你原本的Bean。
determineCandidateConstructors
定义态BeanDefinition
beanDefinition
postProcessAfterInstantiation
MessageSourceAware
yes
中止赋值
BeanFactory和ApplicationContext的区别:工厂和4S店区别BeanFactory是Bean的工厂,spring的顶层核心接口,没有BeanFactory就没有Bean的存在,工厂只负责按照要求生成Bean,Bean的定义信息,要生产成什么样由下家(ApplicationContext)说了算。b style=\
③
②
SmartInstantiationAwareBeanProcessor
初始化 Initialization
beanDefinitionMap封装Bean的生成指标
classname
DisposableBean
ApplicationContextAwareProcessorpostProcessBeforeInitialization
invoke
BeanFactory
BeanClassLoaderAware
no
setApplicationContext
destroy
通过配置指定的方法
......
beanClass
BeanPostProcess
postProcessMergedBeanDefinition
SUV图纸
autowireMode
singletonObject最终在应用中使用的bean
如果符合生产标准
其中一个
isInCreation
标记正常创建中解决循环依赖
lazyinit
BeanFactoryPostProcessor
addSingletonFactory
ApplicationEventPublisherAware
可直接返回bean,停止创建AOP解析切面
①
scope
扩展点----初始化生命周期回调方法
属性赋值 Populate
addSingleton()
setEnvironment
EnvironmentAware
dependsOn
BeanPostProcessors
指定实例化的构造函数
BeanNameAware
ResourceLoaderAware
初始化前调用@PostContruct
ApplicationContextAware
注册
JVM 类加载到内存car.classTank.class
成熟态
doCreateBean()
概念态
ApplicationContext
皮卡图纸
InstantiationÅwareBeanPostProcessor
桥车图纸
init-method
跑车
postProcessAfterInitialization
no添加到InCerationcreateBean()
DefaultSingletonBeanRegistry
DestructionAwareBeanPostProcessor
依赖
解决循环引用AOP
requiresDestruction
invokeBeanFactoryPostProcessors
MergedBeanDefinitionPostProcessor
注入属性PropertyValues@AutoWired在这里进行DI
初始化后AOP创建代理
坦克图纸
实例化 Instantiation
特殊车辆
修改
setResourceLoader
setEmbeddedValueResolver
initMethodName
各种车子的生成方法(BeanDefinitionMap)
bean初始化过程的几种形态
setBeanClassLoader
BeanFactoryAware
singletonFactories
二、三级缓存
AbstractAutowireCapableBeanFactory
二级缓存早期暴露Bean循环依赖才体现纯净态的作用
init
SmartInstantiationAwareBeanPostProcessor
SUV
AbstractBeanFactory getbean() 生产
afterPropertiesSet
@PreDestroy
postProcessBeforeInitialization
循环依赖getBean(suv)
纯净态
singletonObjects是否创建完成
特殊图纸
@PostConstruct
@Autowire @Value预解析InjectionMetadata
EmbeddedValueResolverAware
setApplicationEventPublisher
getEarlyBeanReference
postProcessBeforeInstantiation
InitializingBean
postProcessPropertyValues
关闭容器close()
put
bean的后置处理器9处调用
0 条评论
回复 删除
下一页