@Autowired的required属性

@Autowired的required属性

这样表示什么?http://img1.sycdn.imooc.com//climg/5e776cad09c2786b10320449.jpg

@Autowired(required = true),通过@Autowired的required属性设置一定要找到的bean?我有点
不太理解。没找会怎么样?报错吗?


正在回答

登陆购买课程后可参与讨论,去登陆

3回答

同学你好!

  1. 如果设置为false,找不到时不会报注入错误,只是在使用时会报空指针,比如:

    http://img1.sycdn.imooc.com//climg/5e7879f30924c1df06940188.jpg

    同学如果感兴趣也可以自己测试一下

  2. 两个相同类型的bean,我们就需要使用@Qualifire这个注解和它配合使用或者直接使用 @Resource这个注解

如果我都回答解决了你的疑惑,请采纳,祝学习愉快~


  • jia_蛙 提问者 #1
    谢谢老师!
    2020-03-23 17:13:16
好帮手慕柯南 2020-03-23 11:01:28

同学你好!

  1.  通过@Autowired的required属性设置一定要找到的bean,找不到会报错bean注入错误,默认配置为true

    http://img1.sycdn.imooc.com//climg/5e7821650904306309490082.jpg

  2. 如果有两个类型相同的bean,并且没有指定bean的名称会报错,是需要手动指定bean的名称的

    http://img1.sycdn.imooc.com//climg/5e782664096087c611310068.jpg

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • 提问者 jia_蛙 #1
    就算我们不写这个required属性默认也是为ture,如果我们设置为false,它没找到的话就不会报错嘛?如果有两个相同类型的bean,我们就需要使用@Qualifire这个注解和它配合使用或者直接使用 @Resource这个注解对吗?
    2020-03-23 11:06:30
提问者 jia_蛙 2020-03-22 22:25:18
- @Authowired 默认按照类型进行注入
  如果存在两个Bean类型相同,则按照名称注入
  还有一个问题,这里说如果存在两个Bean类型相同,则按照名称注入,我们课程中的案例,
  已经知道  @Autowired 先是按照类型也就是UserDao来注入,假如有两个相同的UserDao,那它们
  按照什么名称注入?是@Repositor注解中的bean名称嘛?如果是的话@Autowired 注解没有指定
  bean名称是什么呀?
  
  
  @Autowired
  private UserDao userDao;


问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师