首页 > 其他分享 >Spring中@Autowired和@Resource的区别

Spring中@Autowired和@Resource的区别

时间:2023-11-17 14:02:44浏览次数:36  
标签:Resource service Service Autowired Spring 注解

说明

注解提供方:

@Autowired这个由Spring提供;@Resource由JDK提供

区别

①注解内参数不同

@Autowired只包含一个required参数,默认为true,表示注入的时候,该bean必须存在,否则就会注入失败;required=false,表示忽略当前要注入的bean,如果有直接注入,没有跳过,不会报错

@Resource 包含七个参数,其中最重要的两个是name和type

②装配方式默认值不同

@Autowired默认按type自动装配

@Resource默认按name自动装配

③注解应用范围不同

@Autowired能够用在构造方法、成员变量、方法参数、注解上

public class Service {

//构造方法注入
@Autowired
public Service(Service service) {
this.service = service;
}

//成员变量注入
@Autowired
private Service service;

//方法参数注入
@Autowired
public void setService(Service service) {
this.service = service;
  }
}

@Resource能用在类、成员变量和方法参数上

④出处不同

@Autowired是Spring定义的注解

@Resource定义在JDK中

所以@Autowired只能在Spring框架下使用,而@Resource则可以与其他框架一起使用

⑤加载顺序不同

@Autowired默认先按byType进行匹配,如果发现找到多个bean,则又按照byName方式进行匹配,如果还有多个,则报出异常。

@Resource的装载顺序分为四种情况(name\type 组合)

参考

https://zhuanlan.zhihu.com/p/522095455



标签:Resource,service,Service,Autowired,Spring,注解
From: https://blog.51cto.com/u_15758999/8442202

相关文章

  • spring boot
           ......
  • Spring5学习随笔-生命周期、自定义类型转换器、后置处理Bean
    学习视频:【孙哥说Spring5:从设计模式到基本应用到应用级底层分析,一次深入浅出的Spring全探索。学不会Spring?只因你未遇见孙哥】第十章、对象的生命周期1.什么是对象的生命周期指的是一个对象创建、存活、消亡的一个完整过程2.为什么要学习对象的生命周期由Spring负责对象的......
  • 「Java开发指南」如何在Spring中使用JAX-WS注释器?
    本文将指导您如何使用JAX-WS注释器从Spring服务生成JAX-WSWeb服务,在本教程中,您将学习如何:为Spring服务启用JAX-WS部署应用程序并测试服务所有与Springscaffolding相关的任务都需要MyEclipseSpring或Bling授权。MyEclipsev2023.1.2离线版下载MyEclipse技术交流群:7423369......
  • org.springframework.boot.loader.jar.jarfile memory leak
       org.springframework.boot.loader.jar.jarfilememoryleak这个问题可能是因为SpringBoot应用在运行时会将jar包解压到临时文件夹中,然后从这些解压的文件中加载类。如果您在应用运行时反复加载不同的jar包,就可能导致内存泄漏的问题。解决这个问题的方法是在应用......
  • @Autowired 注入为null
     背景写一个SpringBoot程序,把从接口传过来的数据放进队列,用线程将数据读进数据库和redis。在启动类创建了一个全局队列,通过实现runable接口的方式写了一个线程A,在线程中用@Autowird注入service层的对象调用操作数据库的办法。原本打算在启动类通过newThread(newA())......
  • springboot整合前端实现断点续传、大文件秒传以及多线程上传下载
    前端,百度开源框架webuploader新建upload.htmlwebuploader官网地址:http://fex.baidu.com/webuploader/<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>webuploader</title></head><!--引......
  • springboot 集成dubbo 关键配置:
    1.pom<!--dubbo与zk的组件start--><dependency><groupId>com.alibaba.boot</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>0.1.0</version></dependency><dependency>......
  • 通过linux etc/init.d 来执行springboot jar
    今天解开了一个困扰我好久的问题,我们的项目到底是怎么执行的?为什么把项目的jar包scp到服务器,然后再创建一个同名的conf文件,之后建立一个软连接就可以start和stop了?springbootjar和普通jar的区别springbootjar是可执行的不可以被其他项目依赖的普通jar是不可执行的是可以......
  • SpringBoot 中大文件(分片上传)断点续传与极速秒传功能的实现
    1.背景在实际项目中,我们经常会遇到需要上传大文件的情况,常见的方法是将整个文件一次性上传,在文件较大时会出现上传速度慢或者可能导致上传失败等问题。针对这种情况,通常可以采用分片上传的方式,将文件分为多个小片段进行上传,降低单个上传请求的负载,提高上传效率。同时,考虑到用户......
  • 微服务系列-基于Spring Cloud Eureka进行服务的注册与消费
    公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享。在之前的几个教程中,我们学了:使用RestTemplate的SpringBoot微服务通信示例使用WebClient的SpringBoot微服务通信示例使用SpringCloudOpenFeign的SpringBoot微服务通信示例在......