前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >@Resource和@Autowire的区别

@Resource和@Autowire的区别

作者头像
DencyCheng
发布2020-10-23 11:08:22
1.3K0
发布2020-10-23 11:08:22
举报
文章被收录于专栏:SpringBootSpringBoot

@Resource和@Autowired

  • @Resource@Autowired都可以用来装配bean,都可以用于字段或setter方法。
  • @Autowired默认按类型装配,默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false。
  • @Resource默认按名称装配,当找不到与名称匹配的bean时才按照类型进行装配。名称可以通过name属性指定,如果没有指定name属性,当注解写在字段上时,默认取字段名,当注解写在setter方法上时,默认取属性名进行装配。

注意:如果name属性一旦指定,就只会按照名称进行装配。

  • @Autowire@Qualifier配合使用效果和@Resource一样: @Autowired(required = false) @Qualifier("example") private Example example; @Resource(name = "example") private Example example;
  • @Resource装配顺序 1. 如果同时指定name和type,则从容器中查找唯一匹配的bean装配,找不到则抛出异常 2. 如果指定name属性,则从容器中查找名称匹配的bean装配,找不到则抛出异常 3. 如果指定type属性,则从容器中查找类型唯一匹配的bean装配,找不到或者找到多个抛出异常 4. 如果都不指定,则自动按照byName方式装配,如果没有匹配,则回退一个原始类型进行匹配,如果匹配则自动装配

简要对比表格

注解对比

@Resource

@Autowire

注解来源

JDK

Spring

装配方式

优先按名称

优先按类型

属性

name、type

required

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-10-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • @Resource和@Autowired
    • 简要对比表格
    相关产品与服务
    容器服务
    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档