源码地址:https://github.com/spring-projects/spring-framework
仓库地址:https://gitcode.net/qq_42665745/spring/-/tree/04-porperty-inject
Bean属性注入
属性注入相关的类
1.PropertyValue:属性对象,name:value
2.PropertyValues:管理一组 PropertyValue 对象,提供方法来添加、获取和根据属性名称查找属性值。
3.BeanReference:表示对其他 bean 的引用
流程:
1.创建BeanFactory工厂
2.注册类的BeanDefinition信息,包括类的Class对象和属性信息
3.使用的时候调用beanFactory.getBean(“XXX”)创建Bean对象,第一次获取,Bean对象不存在,需要进行实例化Bean,然后进行属性注入,如果有属性的类型为BeanReference引用类型的话,先拿到这个引用类型的beanName,递归调用getBean方法先创建这个类的Bean对象,然后再进行属性注入,至此Bean成功创建