spring bean对象的生成及数据注入的时机 -》getBean

本文详细探讨了Spring中Bean的生成过程,包括预加载和通过`getBean`手动获取。预加载适用于非抽象、单例且非懒加载的Bean。`getBean`接口是关键,涉及BeanFactory的处理,如从单例缓存中查找、FactoryBean的处理等。数据注入主要在`populateBean`方法中完成,通过反射机制设置属性值。
摘要由CSDN通过智能技术生成

大家都知道在spring中bean对象的生成分两类一类是预加载,也就是说在容器初始化的时候把bean注入生成的事情一起干了。另一类是需要开发者主动调用getBean来获取bean对象。
1.预加载函数截图如下
在这里插入图片描述通过上面的代码来看,什么样的bean可以被预加载呢?需要满足以下条件:1.不能是抽象类 2.需要是单例 3.懒加载属性值要为false
不管是预加载还是自己手动调用的加载,都是调用getBean 接口来加载bean,所以理解getBean是了解bean IOC的关键,来看个流程图。
在这里插入图片描述1。在这里插入图片描述我们一般使用getBean时候,只传入bean id的名字。

  1. doGetBean
    在这里插入图片描述首先是转换下beanname :1 是不是以&开头,如果是进行相关处理。2 查看是否有别名,如果有返回别名,没有返回自己。
    其次,从单例bean实例对象的hashmap中查找有没有已经存在的bean对象,如果有则返回对象,如果没有继续判断是不是单例工厂(ObjectFactory
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bruk_spp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值