Spring如何创建一个Bean对象?

Spring创建Bean对象过程

类—>推断构造方法—>对象—>依赖注入—>初始化前—>初始化---->初始化后—>代理对象—>放入Map单例池—>Bean对象

1 - 推断构造方法
在Spring中默认使用无参构造方法,在多个构造方法中,没有任何构造方法标注@Autowired注解情况下,默认寻找无参构造方法,若找不到则报错。在多个构造方法中,若有某个构造方法标注@Autowired注解,则使用该构造方法创建对象

2 - 依赖注入
在Spring创建了当前对象后,会利用反射对当前对象的属性进行赋值,赋值的前提是属性标注例如@Autowired,然后根据当前对象的类型去单例池寻找,如果利用类型找不到再根据名字去单例池寻找,如果两个形式都找不到则报错。

3 - 初始化前
Spring提供了@PostConstruct注解,被标注的方法会执行。

4 - 初始化
当前对象是否实现了InitializingBean接口,Spring源码中会判断当前对象是否实现了此接口
​ 源码 boolean isInitiallizingBean = (Bean instanceof InitializingBean);
若实现了此接口,Spring会将当前对象转换为InitializingBean对象然后执行afterPropertiesSet()方法

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值