Spring Bean实例化过程简图
2020-03-25 09:18:24 0 举报
spring学习
作者其他创作
大纲/内容
改变你想要改变的一些属性,比如程序需要改变beanclassbeanDefinition().setBeanClass(Y.class)
scope=\"singleton\"
Y
验证
dependsOn
调用bean工厂的后置处理器
x对象工厂
Spring启动scan parse
BeanDefinition--Object-X
被注解的类
autowireMode
xxx Bean
factoryMethodName
getY
y.class
getX
Spring单例池map
推断构造方法
classLoader
constructorArgumentValues=citydao
①
proxy对象
Test Bean
preInstantiateSingletons
完成代理--aop
判断是否需要完成属性注入
实例化BeanDefinition
获取X类所对应BeanDefinitionBeanDefinitionBuilder.genericBeanDefinition();
bean的生命周期
factoryBeanName
缓存起来
下面整个是一个BeanDefinition对象
update
调用生命周期回调方法
new Y
扫描类
qualifiers
beanDefinitionMap
回调Awre接口
Spring 循环依赖
lazyInit
解析这个类
destroyMethodName
initMethodName
Student.java
⑤
beanClass
X
propertyValues
x.class
new对象 反射
完成属性注入
Product Bean
put单例池 容器
提前暴露一个工厂
more......
map
beanClassName=“x”
isLazy
改变X类所对应的BeanDefinition对象的一些属性
String【BeanName】
xxxx=\"xxxx\"
TestA
②
Spring Bean 的实例化过程简图
④
dependencyCheck
缓存 注解信息 解析合并后的bd对象
isAbstract
自定义的BeanFactoryPostProcessor--spring内部
Description
primary
beanClass=X beanClass=Y
ConfigurationClassPostProcessor--BeanDefinitionRegistryPostProcessor
constructorArgumentValues
③
beanDefinition put map
Order.java
没被注解的类
Student Bean
Teacher Bean
销毁对象
put map
实例化Spring容器
xxxxxx.java
Details Bean
Details.java
收藏
0 条评论
下一页