Spring-IOC加载Bean【九】bean对象的实例化-创建BeanWrapper实例之obtainFromSupplier
通过Supplier回调的方式获取新实例的BeanWrapper
1 | protected BeanWrapper obtainFromSupplier(Supplier<?> instanceSupplier, String beanName) { |
流程:
- NamedThreadLocal中设置当前创建的bean名称
- 通过Supplier接口中的get()方法获取bean对象
- 如果获取的bean对象为null,则返回NullBean
- 组装BeanWrapper:就是对bean的再一次封装,提供和获取和设置属性值的能力和获取属性描述符,查询属性的可读性/可写性。
- 初始化BeanWrapper,这块逻辑后面还会经常接触,所以打算单独分析
在这看一看Supplier接口:
1 |
|
这个接口有点像工厂,通过设置Supplier,并调用get获取对象T;
1 | public void setInstanceSupplier( { Supplier<?> instanceSupplier) |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ClawHub的技术分享!