iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Spring的@Autowired与@Resource有什么区别
  • 327
分享到

Spring的@Autowired与@Resource有什么区别

2023-06-29 05:06:27 327人浏览 薄情痞子
摘要

今天小编给大家分享一下spring的@Autowired与@Resource有什么区别的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解

今天小编给大家分享一下spring的@Autowired与@Resource有什么区别的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

开始讲解之前我们首先要明白一点,这个两个注解都是用来完成组件的装配的,即利用依赖注入(DI),完成对ioc容器当中各个组件之间依赖的装配赋值。

@Autowired注解

来源:@Autowired为Spring提供的注解,需要导入包org.springframework.beans.factory.annotation.Autowired

说明:@Autowired采取的默认策略为按照类型注入(by-type)。要求容器中一定要有这个类型的对象,如果没有将会报错,抛出异常。也可以通过设置可以@Autowired(required = false),来告诉容器,如果没有可以不注入。

示例:

public class StudentController {    @Autowired    private StudentServer studentServer; }

如上代码所示,这样装配会去spring容器中找到类型为StudentServer的类,然后将其注入进来。这样会产生一个问题,当容器中有多个相同类型的对象,会造成无法选择具体注入哪一个的情况从而导致报错,这个时候我们可以通过@Qualifier("beanname"),来指定装配哪个对象。

public class StudentController {    @Autowired    @Qualifier(name="studentServer")        private StudentServer studentServer; }

@Qualifier注解会告诉spring去装配StudentServer对象。这个时候我们就可以成功注入正确的对象了。

@Resource注解

来源:@Resource注解由J2EE提供,需要导入包javax.annotation.Resource

说明:@Resource可以设置by-name(按名称)和by-type(按类型)来进行自动装配。如果没指定则默认按照ByName自动注入。

示例

public class StudentController {    @Resource      private StudentServer studentServer; }

没有指定name,又没有指定type,该注解会自动按照by-name方式进行装配,如果匹配则自动装配。如果没有匹配,则按照by-type进行查找,如果都没查找到,那么则抛出异常。

public class StudentController {    @Resource(name="studentServer")      private StudentServer studentServer; }

指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常。

public class StudentController {     @Resource(type="StudentServer")       private StudentServer studentServer; }

指定了type,则从上下文中找到类似匹配的唯一bean进行装配,找不到或是找到多个,都会抛出异常。

public class StudentController {    @Resource(name="studentServer",type="StudentServer")      private StudentServer studentServer; }public class StudentController {    @Resource(name="studentServer",type="StudentServer")      private StudentServer studentServer; }

同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常。

以上就是“Spring的@Autowired与@Resource有什么区别”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网精选频道。

--结束END--

本文标题: Spring的@Autowired与@Resource有什么区别

本文链接: https://www.lsjlt.com/news/322813.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Spring的@Autowired与@Resource有什么区别
    今天小编给大家分享一下Spring的@Autowired与@Resource有什么区别的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解...
    99+
    2023-06-29
  • Spring@Autowired与@Resource的区别有哪些
    @Autowired与@Resource都是我们日常开发中常用的两个注解,那么它们之间究竟有何区别呢? 开始讲解之前我们首先要明白一点,这个两个注解都是用来完成组件的装配的,即利用依...
    99+
    2022-11-13
  • Spring中@Autowired与@Resource的区别详析
    目录一、定义二、区别总结一、定义 @Autowired 对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 @Resource 在语义上被定义为通过其...
    99+
    2022-11-12
  • Spring中@Autowired@Resource@Inject三个注解有什么区别
    目录@Autowired@Inject@Resourcejavax.annotation.Resource jdk 内置的,JSR-250 中的注解。 依赖注入通过 org.spri...
    99+
    2023-03-06
    Spring @Autowired注解 Spring @Resource注解 Spring @Inject注解
  • Spring中@Autowired、@Resource和@Inject注解的区别是什么
    这篇文章主要介绍了Spring中@Autowired、@Resource和@Inject注解的区别是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Spring中@Autowired、@Resource和@I...
    99+
    2023-07-05
  • 浅谈Spring框架中@Autowired和@Resource的区别
    目录前言默认注入方式不同提供者不同补充:@Resource的装配顺序如下总结前言 写过Spring框架的同学应该都知道,Spring当中使用字段注入的时候既可以用 @Autowire...
    99+
    2022-11-13
    @autowired和@resource区别 spring @autowired @resource
  • 一文搞懂Spring中@Autowired和@Resource的区别
    目录1.来源不同2.依赖查找顺序不同2.1 @Autowired 查找顺序2.2 @Resource 查找顺序2.3 查找顺序小结3.支持的参数不同4.依赖注入的支持不同5.编译器提...
    99+
    2022-11-13
  • @Autowired与@Resource在实现对象注入时的区别
    目录简述详解相同点1:属性注入(Field Injection)相同点2:setter注入不同点1:@Autowried可以使用构造方法注入,而@Resource不支持构造方法注入不...
    99+
    2023-05-17
    @Autowired与@Resource注解区别 @Autowired @Resource
  • @Resources, @Inject和@Autowired的区别是什么
    这篇文章主要介绍“@Resources, @Inject和@Autowired的区别是什么”,在日常操作中,相信很多人在@Resources, @Inject和@Autowired的区别是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好...
    99+
    2023-06-02
  • Spring与Spring Boot核心区别是什么
    本篇内容介绍了“Spring与Spring Boot核心区别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是Spring作为 Ja...
    99+
    2023-06-16
  • Spring BeanFactory与FactoryBean的区别是什么
    这篇文章主要介绍了Spring BeanFactory与FactoryBean的区别是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Spring BeanFactory与FactoryB...
    99+
    2023-06-30
  • 往DAO类中注入@PersistenceContext和@Resource有什么区别
    本文小编为大家详细介绍“往DAO类中注入@PersistenceContext和@Resource有什么区别”,内容详细,步骤清晰,细节处理妥当,希望这篇“往DAO类中注入@PersistenceContext和@Resource有什么区别...
    99+
    2023-06-29
  • @Bean vs与@Service注解在Spring中有什么区别
    @Bean vs与@Service注解在Spring中有什么区别?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。先来看一个例子,目标是创建SearchService的一个Bean...
    99+
    2023-05-30
    spring @bean @service
  • spring-data-jpa中findOne与getOne的区别是什么
    本篇内容主要讲解“spring-data-jpa中findOne与getOne的区别是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“spring-data-jpa中findOne与getOn...
    99+
    2023-06-21
  • html5与xml的区别有什么
    这期内容当中小编将会给大家带来有关html5与xml的区别有什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 区别:1、在html5中语法不...
    99+
    2022-10-19
  • dom与html 的区别有什么
    dom与html 的区别有什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。区别:1、DOM分为核心DOM、HTML DOM和XML DO...
    99+
    2022-10-19
  • javascript与java的区别有什么
    javascript与java的区别有什么?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。javascript与java区别:1、JavaScript是一种轻量级的编程语言,Ja...
    99+
    2023-06-14
  • Spring和SpringBoot之间有什么区别
    这篇文章主要介绍了Spring和SpringBoot之间有什么区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Spring是什么?简单地说,Spring框架为开发Java应...
    99+
    2023-06-14
  • Integer与int有什么区别
    Integer与int有什么区别?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Integer和int的区别Integer的默认初始值是null,而int的初始值是int,也...
    99+
    2023-06-06
  • nodejs与javascript有什么区别
    本篇文章给大家分享的是有关nodejs与javascript有什么区别,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。JavaScript介绍:JavaScript(简称“JS”...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作