但是在应用到Bean前还需要做一步类型转换,这一部分代码实际上跟我们之前在Spring官网阅读(十四)Spring中的BeanWrapper及类型转换介绍的差不多,而且因为XML跟自动注入的方式都不常见,正常@Autowired的方式进行注入的话,这个方法没有什么用,所以本文就不再赘述。
总结本文我们主要分析了Spring在属性注入过程中的相关代码,整个属性注入可以分为两个部分
@Autowired/@Vale的方式完成属性注入
自动注入(byType/byName)
完成属性注入的核心方法其实就是doResolveDependency。doResolveDependency这个方法的逻辑简单来说分为两步:
通过依赖类型查询到所有的类型匹配的bean的名称
如果找到了多个的话,再根据依赖的名称匹配对应的Bean的名称
调用getBean得到这个需要被注入的Bean
最后反射调用字段的set方法完成属性注入
从上面也可以知道,其实整个属性注入的逻辑是很简单的。