之前学习的注入对象的用的是@Resource ,为什么现在又成了@Autowired

之前学习的注入对象的用的是@Resource ,为什么现在又成了@Autowired

@Resource 和  @Autowired 的作用是一样的吗,可以互相替换吗?

正在回答

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

1回答

同学你好,两者是有些不同的:

1.来源不同:@Autowired来自Spring框架,而@Resource来自于(Java)JSR-250;

2.依赖查找的顺序不同: @Autowired先根据类型再根据名称查询,而@Resource先根据名称再根据类型查询:

3.支持的参数不同: @Autowired只支持设置1个参数,而 @Resource支持设置7个参数;

4.依赖注入的用法支持不同: @Autowired既支持构造方法注入,又支持属性注入和Setter 注入,而@Resource 只支持属性注入和Setter注入;

5.编译器IDEA的提示不同: 当注入Mapper对象时,使用@Autowired注解编译器会提示错误,而使用@Resource 注解则不会提示错误。

在实际使用的时候,更多的会关注第二点的不同,即查找顺序。如果命名时比较规范,则使用@Resource会更好,如果命名与类型无关,则建议使用@Autowired。

祝学习愉快~

  • AbelZephyr 提问者 #1

    很专业,但是我有点看不懂。

    2023-09-11 10:53:41
  • 好帮手慕小蓝 回复 提问者 AbelZephyr #2

    同学你好,对于初学者来说,来区分各个注解之间的区别确实有难度。所以老师在最后进行了总结,同学只需要关注第二点即可。

    祝学习愉快~

    2023-09-11 11:03:38
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
Java工程师 2024版
  • 参与学习       2020    人
  • 提交作业       1249    份
  • 解答问题       1202    个

2024重磅革新,超百小时内容豪华升级,加速提升高级技能与高薪就业竞争力 课程紧贴企业最新人才需求,历经7年持续迭代,帮助万名学子入行转行 从零起点到高阶实战,学习路径稳健顺滑,成就从小白到工程师高薪

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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