源碼地址: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成功創建