Spring的Map注入原理

本次介绍采用的构造注入,在Bean创建时候就注入属性,(属性注入同理,只不过入口不同)。

1.首先解析出当前Bean拥有几个构造器,当前Bean的话只存在一个,进入autowireConstructor方法之后会循环构造器进行参数的解析操作。

 

 

此处开始真正的解析参数获取Bean对象

参数类型如果是数组,Collection,Map类型则会被此方法解析,如果是单个对象则会被findAutowireCandidates方法进行解析

此处解析map,需要注意的是key的类型一定要是String,用来存放beanName,value就是对应的BeanType,否则就不会继续解析。@Autowired注解的注释也有说明

 匹配方法在于

BeanFactoryUtils.beanNamesForTypeIncludingAncestors

会调用beanDefinitionNames循环匹配,等同于instanceof循环比较

将匹配的Bean进行返回

注:单个类型的Bean和多个类型的Bean匹配逻辑是同一套,只不过单个Bean如果匹配到多个符合条件的候选项的情况下,最终会通过Bean名称进行匹配。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值