spring——@Autowired注解注入数据过程简单分析

主要过程:Client——>service层——>dao层,前提已经用注解创建好对象了,现在目的要在Client中调用service接口的实现类里面的方法——>该方法是要进一步去调用dao层接口的实现类的方法(可以输出信息),期间要被注入数据的dao接口对象是空值,在该对象上面添加注解@Autowired,下面简单分析该注解如何寻找类型符合的数据注入。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------添加注解的那个成员变量:

private IAccountDao accountDao = null;

首先该注解会去bean里面找符合该接口类型的对象,直接跳过key去找value值(bean是Map结构,bean是存放创建好的对象的容器),当找到符合该接口类型(IAccountDao)的value时若有多个,就要反过来在key里面寻找,(key就是bean的id,如果是注解就是它的value值)

比如这时候找到两个该接口的实现类符合,两个类的注解分别是

@Repository("accountDao")
@Repository("accountDao2")

就是要拿这两个id来和上面成员变量的变量名来匹配,可以看出匹配到的是第一个类的注解名为accountDao,这时候选择的就是第一个类了,接着就是调用它的方法做最后的输出信息了。(如果上面变量名随便取其他的比如abc,这时候两个类注解名都不是abc,这时候就会报错找不到符合类型的实现类)下面上大图:这图居然被压扁了

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值