首页 > 其他分享 >@AutoWired和@Resource有什么区别

@AutoWired和@Resource有什么区别

时间:2023-03-31 17:14:46浏览次数:44  
标签:AutoWired Resource 区别 Spring Autowired 注解 注入

@Autowired@Resource 都是用于进行依赖注入的注解,但是它们有以下几个区别:

  1. 来源不同:@Autowired 是Spring提供的注解,而 @Resource 是JavaEE提供的注解,不过Spring也支持使用 @Resource 进行依赖注入。

  2. 默认依赖查找方式不同:@Autowired 默认使用类型匹配的方式进行依赖查找和注入。而 @Resource 默认使用名称匹配的方式进行依赖查找和注入。

  3. 依赖注入的属性不同:@Autowired 可以用于构造器、属性和方法中,而 @Resource 只能用于属性和方法中。

  4. 支持的类型不同:@Autowired 支持按照类型注入任意类型的Bean,而 @Resource 只能注入实现了JavaEE规范的组件,如 DataSourceSessionContextEJB 等。

需要注意的是,使用 @Autowired@Resource 进行依赖注入时,都需要在Spring的配置文件中进行相应的配置,以便让Spring能够扫描到被注入的Bean。


你好,这是Bing。我可以帮你解答你的问题。根据网上的资料1 2 3 4,@AutoWired和@Resource都是用来实现依赖注入的注解,但是它们有一些区别,例如:

  • @AutoWired是Spring框架的注解,而@Resource是JSR-250规范的注解,因此@Resource更通用,不依赖于Spring。
  • @AutoWired默认按照类型匹配,如果有多个同类型的候选者,可以使用@Qualifier指定名称。而@Resource默认按照名称匹配,如果没有指定名称,就按照类型匹配。
  • @AutoWired可以用在构造器,setter方法,字段和参数上,而@Resource只能用在字段和setter方法上。

例如:

@Autowired
@Qualifier("myBean")
private MyBean myBean;

等价于

@Resource(name="myBean")
private MyBean myBean;

希望这些信息对你有帮助。如果你还有其他问题,请继续提问。

标签:AutoWired,Resource,区别,Spring,Autowired,注解,注入
From: https://www.cnblogs.com/livebetter/p/17276865.html

相关文章

  • encodeURI()、encodeURIComponent()区别及使用场景
    一、URLURL是使用ASCII进行编码的,所以有些内容是不支持的,例如中文,URL会使用编码的手段将其转义为可解释内容。在URL中,合法字符分成两类。URL元字符:分号(;),逗号(,),斜杠(/),问号(?),冒号(:),at(@),&,等号(=),加号(+),美元符号($),井号(#) 语义字符:a-z,A-Z,0-9,连词号(-),下划线(_),点(.),感叹号(!),波浪......
  • 安卓APK安装包arm64-v8a、armeabi-v7a、x86、x86_64有何区别?如何选择?
    在GitHub网站下载Android安装包,Actions资源下的APK文件通常有以下版本供选择:例如上图是某Android客户端的安装包文件,有以下几个版本可以选择:mobile-release.apk(通用版本,体积最大)mobile-universal-release.apkmobile-arm64-v8a-release.apk(第8代64位处理器)mobile-armeabi-v......
  • web测试和app测试的区别
    相同点:WEB测试和App测试从流程上来说,没有区别。都需要经历测试计划方案,用例设计,测试执行,缺陷管理,测试报告等相关活动。从技术上来说,WEB测试和APP测试其测试类型也基本相似,都需要进行功能测试、性能测试、安全性测试、GUI测试等测试类型。 不同点他们的主要区别在于具体......
  • Redis和kafka比较,两者的区别和各自的优势。
    1.Redis,它首先是一个内存数据库,其提供的PUB/SUB功能把消息保存在内存中(基于channel),因此如果你的消息的持久性需求并不高且后端应用的消费能力超强的话,使用RedisPUB/SUB是比较合适的使用场景。比如官网说提供的一个网络聊天室的例子:模拟IRC,因为channel就是IRC中的服务器。用户......
  • 浅谈Zabbix与Prometheus区别
    Zabbix和Prometheus都是非常流行的监控系统。它们有许多相似之处,但也有一些不同之处。以下是Zabbix和Prometheus监控对比的一些关键点:1、数据模型和查询语言Prometheus使用一个称为PromQL的查询语言来查询和处理时间序列数据。PromQL支持许多数据模型和查询功能,包括度量标准、标......
  • 运算符is和==的区别
    在Python中,is运算符和==运算符都用于比较对象之间的相等性。==比较的是两个对象的值是否相等,它比较的是对象的内容,而不是它们的身份。也就是说,如果a和b两个变量的值相等,那么a==b的结果应该是True。这意味着==会检查被比较的对象所包含的数据是否相等。is比较的是两个对象的......
  • C#变量类型有哪些,有什么区别
    C#变量类型分为 值类型、引用类型区别:值类型变量可以直接包含值数据直接储存在栈中引用类型包含变量的引用,通过引用找到值值类型包括:整型,浮点型,字符型(char),布尔型(bool),枚举型(enum),结构型(struct)。整型包含:byte,sbyte,short,ushort,int,uint,long,ulong;浮点型包括:floa......
  • 无法使用Resource注解
    问题描述:学习Spring框架的时候,发现无法使用@Resource注解,只能使用@Autowired注解。问题原因:JDK11删除了javax.annotation包,需要导入,否则无法使用@Resource注解。解决办法:在pom.xml文件中导入依赖。......
  • HTTP,TCP,SOCKET区别
    1、TCP连接要想明白Socket连接,先要明白TCP连接。手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。建立起一个TCP连接需要经过“三次握手”:第一次......
  • DOM中Property与Attribute的区别
    property和attribute的汉语翻译几乎相同,都有“属性”的意义(这里姑且称attribute为“特性”,以方便区分),而他们的取值也经常相同,但有时又会踩坑,发现二者会不相等,不同步。0.奇葩......