激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Spring中@Autowired與@Resource的區別詳析

Spring中@Autowired與@Resource的區別詳析

2022-02-24 13:10每天都要進步一點點 Java教程

@Autowired與@Resource都可以用來裝配bean,都可以寫在字段上,或寫在setter方法上,下面這篇文章主要給大家介紹了關于Spring中@Autowired與@Resource區別的相關資料,需要的朋友可以參考下

一、定義

  • @Autowired

對類成員變量、方法及構造函數進行標注,完成自動裝配的工作。

  • @Resource

在語義上被定義為通過其唯一的名稱來標識特定的目標組件,其中聲明的類型與匹配過程無關。

如果沒有明確指定名稱,則默認名稱是從字段名稱或設置方法(get、set方法)派生的。 如果用在字段上,則采用字段名稱; 如果用在在setter方法,它采用其屬性名稱(例如setProperty()方法,取property做為屬性名稱)。

 

二、區別

在Spring框架中,如果在Service層中需要注入其他依賴的對象,通常我們都會使用@Autowired或者@Resource注解,但是它們是有區別的,比如@Autowired跟Spring框架強耦合了, 如果換成其他框架,@Autowired就沒作用了。而@Resource是JSR-250提供的,它是Java標準,絕大部分框架都支持。

接下來,我們總結一下@Autowired和@Resource的區別:

(一)、包含的屬性不同

@Autowired只包含一個參數:required,表示是否開啟自動注入,默認是true。而@Resource包含七個參數,其中最重要的兩個參數是:name 和 type。如下:

public @interface Autowired {

  /**
   * 是否開啟自動注入,有些時候我們不想使用自動裝配功能,可以將該參數設置成false。
   */
	boolean required() default true;

}


public @interface Resource {
  /**
   * bean的名稱
   */
  String name() default "";

  String lookup() default "";

  /**
   * Java類,被解析為bean的類型
   */
  Class<?> type() default java.lang.Object.class;

  enum AuthenticationType {
          CONTAINER,
          APPLICATION
  }

  /**
   * 身份驗證類型
   */
  AuthenticationType authenticationType() default AuthenticationType.CONTAINER;

  /**
   * 組件是否可以與其他組件之間共享
   */
  boolean shareable() default true;

  String mappedName() default "";

  /**
   * 描述
   */
  String description() default "";
}

(二)、@Autowired默認按byType自動裝配,而@Resource默認byName自動裝配。

@Autowired如果要使用byName,需要使用@Qualifier一起配合。而@Resource如果指定了name,則用byName自動裝配,如果指定了type,則用byType自動裝配。

(三)、注解應用的地方不同

@Autowired能夠用在:構造器、方法、參數、成員變量和注解上,而@Resource能用在:類、成員變量和方法上。

(四)、出處不同

@Autowired是Spring定義的注解,而@Resource是JSR-250定義的注解。所以@Autowired只能在Spring框架下使用,而@Resource則可以與其他框架一起使用。

(五)、裝配順序不同

@Autowired的裝配順序如下:

@Autowired默認先按byType進行匹配,如果發現找到多個bean,則又按照byName方式進行匹配,如果還有多個,則報出異常。

Spring中@Autowired與@Resource的區別詳析

@Resource的裝配順序如下:

如果同時指定了name和type,流程如下:

Spring中@Autowired與@Resource的區別詳析

如果指定了name,流程如下:

只是指定了@Resource注解的name,則按name后的名字去bean元素里查找有與之相等的name屬性的bean。

Spring中@Autowired與@Resource的區別詳析

如果指定了type,流程如下:

只指定@Resource注解的type屬性,則從上下文中找到類型匹配的唯一bean進行裝配,找不到或者找到多個,都會拋出異常。

Spring中@Autowired與@Resource的區別詳析

如果既沒有指定name,也沒有指定type,流程如下:

既不指定name屬性,也不指定type屬性,則自動按byName方式進行查找。如果沒有找到符合的bean,則回退為一個原始類型進行進行查找,如果找到就注入。

Spring中@Autowired與@Resource的區別詳析

 

總結

到此這篇關于Spring中@Autowired與@Resource區別的文章就介紹到這了,更多相關Spring中@Autowired與@Resource區別內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/Weixiaohuai/article/details/120853683

延伸 · 閱讀

精彩推薦
  • Java教程Mybatis初始化知識小結

    Mybatis初始化知識小結

    Mybatis的初始化過程就是加載自己運行時所需要的配置信息的過程,這篇文章主要介紹了Mybatis初始化知識小結,需要的朋友可以參考下...

    毛奇志4082022-02-12
  • Java教程java刪除文件和文件夾具體實現

    java刪除文件和文件夾具體實現

    這篇文章介紹了java刪除文件和文件夾具體實現,有需要的朋友可以參考一下 ...

    java之家9792019-10-18
  • Java教程Web Service 運行原理詳細介紹

    Web Service 運行原理詳細介紹

    這篇文章主要介紹了 Web Service 運行原理詳細介紹的相關資料,需要的朋友可以參考下...

    java教程網4152020-06-28
  • Java教程java獲取客服端信息的方法(系統,瀏覽器等)

    java獲取客服端信息的方法(系統,瀏覽器等)

    下面小編就為大家帶來一篇java獲取客服端信息的方法(系統,瀏覽器等)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看...

    jingxian8832020-06-18
  • Java教程學習Java多線程之同步

    學習Java多線程之同步

    這篇文章主要為大家詳細介紹了Java多線程之同步,感興趣的小伙伴們可以參考一下 ...

    劉望舒2782020-04-06
  • Java教程Spring框架生成圖片驗證碼實例

    Spring框架生成圖片驗證碼實例

    驗證碼在很多地方都會遇到,實現的方法和形式也有很多,主要的目的就是為了安全,防止一些惡意的攻擊等。今天在之前搭建好的一個spring框架上寫了一...

    daisy1952020-06-07
  • Java教程Maven 配置文件 生命周期 常用命令詳解

    Maven 配置文件 生命周期 常用命令詳解

    Maven是圍繞著構建生命周期的核心概念為原型,整個項目的創建和部署都是圍繞著生命周期展開的,一個生命周期由若干個生命周期階段組成。下面通過本...

    清楓_小天8962021-02-18
  • Java教程spring boot實現驗證碼功能

    spring boot實現驗證碼功能

    Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。這篇文章主要介紹了spring boot實現驗證碼功能,需要的...

    mmp_gaihaoleba4992021-04-22
主站蜘蛛池模板: hd欧美free性xxxx护土 | 午夜精品毛片 | 欧美一级毛片大片免费播放 | 色黄视频网站 | 国产亚洲精品久久久久5区 日韩一级片一区二区三区 国产精品久久久久av | 成人羞羞网站入口 | 毛片免费观看视频 | 一级免费看片 | 干色视频 | 性片久久 | 黄色免费小视频网站 | 黄色a级片视频 | 欧美性色大片 | 久久我不卡 | 日本最新免费二区三区 | 在线视频观看一区二区 | 久久久久久久久久久久久久久伊免 | 一区二区三区欧美在线观看 | 韩国精品视频在线观看 | 97久久人人超碰caoprom | 黄色网在线播放 | 成人福利在线 | 国产精品探花在线观看 | 一级电影在线观看 | 欧美一级欧美 | 一区二区三区在线观看免费视频 | 夜添久久精品亚洲国产精品 | 少妇淫片免费一级毛片 | 毛片网站视频 | 午夜国产福利 | 免费的性生活视频 | 日韩aⅴ一区二区三区 | 在线成人一区二区 | 亚洲性综合网 | 欧产日产国产精品v | 中国hd高清xxxxvideo | 国产一区二区三区高清 | 午夜激情视频网站 | 羞羞漫画无遮挡观看 | 欧美a在线观看 | 欧美高清第一页 |