码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【Spring】@Autowired和@Resource关键字的区别


    共同点

    两个注解的作用一样,都是做bean的注入,在接口只有一个实现类的时候,两个注解可以交替使用。
    两者都可以写在字段和setter方法上,两者如果都写在字段上,那么就不需要再写setter方法

    不同点

    @Autowired
    @Autowired为Spring提供的注解,需要导入包org.springframework.beans.factory.annotation.Autowired;
    只按照byType注入。
    在这里插入图片描述
    @Autowired注解是按照类型(byType)装配依赖对象,默认情况下它要求依赖对象必须存在,如果允 许null值,可以设置它的required属性为false。如果我们想使用按照名称(byName)来装配,可以结合@Qualififier注解一起使用。
    在这里插入图片描述

    @Resource
    @Resource默认按照ByName自动注入,由J2EE提供,需要导入javax.annotation.Resource。
    @Resource有两个重要的属性:name和type,而Spring将@Resource注解的name属性解析为bean的 名字,而type属性则解析为bean的类型。所以,如果使用name属性,则使用byName的自动注入策 略,而使用type属性时则使用byType自动注入策略。如果既不制定name也不制定type属性,这时将通 过反射机制使用byName自动注入策略。

    在这里插入图片描述
    注:最好是将@Resource放在setter方法上,因为这样更符合面向对象的思想,通过set、get去操作属 性,而不是直接去操作属性。
    其实@Resource并不是spring的注解,它的包 是javax.annotation.Resource,需要导入,但是Spring支持该注解的注入。

    @Resource装配顺序:

    • ①如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异 常。
    • ②如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常。
    • ③如果指定了type,则从上下文中找到类似匹配的唯一bean进行装配,找不到或是找到多个,都会抛 出异常。
    • ④如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;如果没有匹配,则回 退为一个原始类型进行匹配,如果匹配则自动装配。

    @Resource的作用相当于@Autowired,只不过@Autowired按照byType自动注入。

  • 相关阅读:
    要么干要么滚!推特开始裁员了;深度学习产品应用·随书代码;可分离各种乐器音源的工具包;Transformer教程;前沿论文 | ShowMeAI资讯日报
    Android OpenCV 身份证识别实战
    RabbitMQ进阶
    Go 消息队列及工作池处理
    企业微信下班后能收到通知吗?不接收消息怎么设置?
    商业化广告--体系学习-- 3 -- 行业蓝图篇 -- 广告主、媒体、第三方检测
    阿里M8每天肝到凌晨,竟是只为一份文档把分布式到微服务讲清楚
    骨传导能保护听力吗,骨传导耳机能够进一步减少耳道的损伤
    【非真实渲染】【卡通渲染技术点介绍】
    【一种使用浏览器读取本地excel、josn等数据文件的方法】Python+JavaScript+HTML实现
  • 原文地址:https://blog.csdn.net/Laura__zhang/article/details/126655151
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号