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
    点赞
  • 0
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值