Bean 的生命周期
2024-05-23 10:13:29 0 举报
登录查看完整内容
Spring 框架 Bean 的生命周期
作者其他创作
大纲/内容
⑥ 当二级缓存中的对象走完创建生命周期后,得到完整对象,将完整对象放入单例池中
1、默认使用无参构造器2、只有一个有参构造器,使用有参构造器3、有多个有参构造器,没有无参构造器时,需要 使用 @Autowired 指定使用哪一个否则报错
初始化后AOP
④ 如果二级缓存中没有找到,就去三级缓存找
① 将普通对象的信息封装成 Lambda 表达式
② 去单例池中找注入对象,如果没有找到,在判断是不是循环依赖了
一级缓存单例池 singletonObjects
Bean 初始化
推断构造器
类实现 InitializingBean 接口,重写 afterPropertiesSet() 方法,初始化时将执行 afterPropertiesSet() 方法中的逻辑
⑤ 根据 Lambda 表达式创建对象,创建后保存到二级缓存中
二级缓存 easySingletonObjects
Bean 实例化
创建普通对象
使用 Bean
销毁
可能出现循环依赖,Spring 通过三级缓存来解决循环依赖:一级缓存:单例池 SingletonObjects二级缓存:easySingletonObjects三级缓存:singletonFactorys一级缓存,缓存的是经历过完整创建周期的Bean 对象。二级缓存,缓存的是没有经历完整创建周期的 Bean 对象。三级缓存,缓存的是 Lambda 表达式,Lambda 包含有 BeanName, 方法信息,和普通对象
Bean 的生命周期
三级缓存 singletonFactorys
DI 依赖注入,为属性赋值
③ 如果是循环依赖了,就去二级缓存中找注入对象
0 条评论
回复 删除
下一页