@Autowired原理

如果资源类型的bean不止一个,
        默认根据@Autowired注解标记的成员变量名作为id查找bean,进行装配★

如果根据成员变量名作为id还是找不到bean,
        可以使用@Qualifier注解明确指定目标bean的id★

或者primary首选项

 

@Autowrited

@primary(优先使用)

private BookService bookServiceExt2;

public void doGet(){

System.out.printly( bookServiceExt2)

}

@Autowired原理:
     @Autowired
     private BookService bookService;
     1)、先按照类型去容器中找到对应的组件 bookService=ioc.getBean(BookService.class)
          1)、找到一个:找到就赋值
          2)、没找到:抛异常
          3)、找到多个
              1)、按照变量名作为id继续匹配  BookService BookServiceExt
                    @Autowired
                    private BookService bookServiceExt2;
                   1)、匹配上?  装配
                   2)、没有匹配上? 报错
                        原因:因为按照变量名作为id继续匹配
                        使用@Qualifier("bookServiceExt")指定一个新id
                            1)、找到装配
                            2)、找不到   报错
    发现Autowired标注的自动装配的属性默认是一定装配上的
        找到就装配,找不到就拉倒  @Autowired(required = false)....(required 属性规定必需在提交之前填写输入字段。)tuue、false

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值