欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot注解篇之@Resource與@Autowired的使用區(qū)別

 更新時間:2023年12月26日 15:08:34   作者:AK@  
@Resource 注解和 @Autowired 注解都是在 Spring Framework 中進行依賴注入的注解,那么你知道他們有什么區(qū)別嗎,本文就來介紹一下

一、@Resource與@Autowired的區(qū)別

@Resource 注解和 @Autowired 注解都是在 Spring Framework 中進行依賴注入的注解,但它們之間有一些區(qū)別:

1. 來源不同:

@Resource 注解是由 Java EE 提供的注解,它定義在 javax.annotation.Resource 包下。
@Autowired 注解是由 Spring 提供的注解,它定義在 org.springframework.beans.factory.annotation.Autowired 包下。

2. 依賴注入策略不同:

@Resource 注解默認按照名稱進行依賴注入,如果有多個具有相同類型的依賴,可以使用 name 屬性指定依賴的名稱。
@Autowired 注解默認按照類型進行依賴注入,如果有多個具有相同類型的依賴,可以使用 @Qualifier 注解或者 @Primary 注解指定依賴的名稱或主要依賴。

3. 兼容性不同:

@Resource 注解屬于 Java EE 標準的注解,在 Java EE 環(huán)境中可以正常使用。
@Autowired 注解是 Spring Framework 提供的特定于 Spring 的注解,它可以在 Spring 環(huán)境下使用。

4. 注解屬性不同:

@Resource 注解可以添加 name 屬性來指定依賴的名稱,還可以添加 mappedName 屬性來指定依賴的 JNDI 名稱。
@Autowired 注解可以添加 required 屬性來指定依賴是否必須,默認為 true。
綜上所述,@Resource 注解和 @Autowired 注解在功能上有一些相似之處,但也有一些區(qū)別。如果你在 Java EE 環(huán)境中使用依賴注入,可以選擇使用 @Resource 注解;如果在 Spring Framework 環(huán)境中使用依賴注入,可以選擇使用 @Autowired 注解。需要根據(jù)具體的情況選擇適合的注解進行依賴注入。

二、@Resource詳解

@Resource 是 Java EE 的注解之一,它用于進行依賴注入。@Resource 注解可以應(yīng)用于字段、方法、參數(shù)或者類上。

在 Spring Framework 中,@Resource 注解是由 Spring 提供的用于進行依賴注入的注解之一。當我們在類中使用 @Resource 注解時,Spring 會自動將匹配的依賴注入到目標字段或方法中。

@Resource 的使用方式有以下幾種:

注解應(yīng)用在字段上:

@Resource
private SomeDependency someDependency;

注解應(yīng)用在 setter 方法上:

private SomeDependency someDependency;

@Resource
public void setSomeDependency(SomeDependency someDependency) {
    this.someDependency = someDependency;
}

注解應(yīng)用在構(gòu)造函數(shù)上:

private SomeDependency someDependency;

@Resource
public MyService(SomeDependency someDependency) {
    this.someDependency = someDependency;
}

注解應(yīng)用在方法的參數(shù)上:

private SomeDependency someDependency;

@Resource
public void someMethod(@Resource SomeDependency someDependency) {
    this.someDependency = someDependency;
}

需要注意的是,@Resource 注解默認按照名稱進行匹配依賴注入。如果有多個具有相同類型的依賴,可以使用 name 屬性指定依賴的名稱。

@Resource(name = "someDependency2")
private SomeDependency someDependency;

此外,@Resource 注解還可以添加 mappedName 屬性來指定依賴的 JNDI 名稱。

總結(jié)來說,@Resource 注解是用于進行依賴注入的注解,它可以應(yīng)用于字段、方法、參數(shù)或者類上。默認按照名稱進行依賴匹配,也可以通過 name 屬性或者 mappedName 屬性指定依賴的名稱。在 Spring Framework 中,@Resource 注解與 @Autowired 注解類似,但略有區(qū)別。

三、@Autowired詳解

@Autowired 是 Spring Framework 中用于進行依賴注入的注解之一。它可以用于自動裝配依賴關(guān)系,使得在需要使用某個依賴時,Spring 可以自動將合適的實例注入到目標對象中。

@Autowired 注解可以應(yīng)用于字段、構(gòu)造函數(shù)、setter 方法和方法的參數(shù)上。

使用 @Autowired 注解時,Spring 會根據(jù)類型進行依賴匹配,它會嘗試找到與目標類型匹配的依賴,并將其注入到目標對象中。如果存在多個匹配的依賴時,可以使用 @Qualifier 注解來指定具體注入哪個實例。

下面是 @Autowired 注解的幾種用法:

注解應(yīng)用在字段上:

@Autowired
private SomeDependency someDependency;

注解應(yīng)用在構(gòu)造函數(shù)上:

private SomeDependency someDependency;

@Autowired
public MyService(SomeDependency someDependency) {
    this.someDependency = someDependency;
}

注解應(yīng)用在 setter 方法上:

private SomeDependency someDependency;

@Autowired
public void setSomeDependency(SomeDependency someDependency) {
    this.someDependency = someDependency;
}

注解應(yīng)用在方法的參數(shù)上:

private SomeDependency someDependency;

@Autowired
public void someMethod(SomeDependency someDependency) {
    this.someDependency = someDependency;
}

需要注意的是,默認情況下,@Autowired 注解要求依賴必須存在,即依賴對象不能為空。如果想要指定依賴為非必需,可以設(shè)置 required 屬性為 false。

@Autowired(required = false)
private SomeDependency someDependency;

此外,@Autowired 注解還可以與 @Qualifier 注解一起使用,從而精確指定要注入的依賴實例。

總結(jié)來說,@Autowired 注解是 Spring Framework 中用于進行依賴注入的注解,它可以應(yīng)用于字段、構(gòu)造函數(shù)、setter 方法和方法的參數(shù)上。它根據(jù)類型進行依賴匹配,默認要求依賴必須存在,可以使用 @Qualifier 注解指定具體注入哪個實例,也可以設(shè)置 required 屬性為 false 來聲明依賴為非必需。使用 @Autowired 可以簡化代碼,減少手動注入的工作量。

到此這篇關(guān)于SpringBoot注解篇之@Resource與@Autowired的使用區(qū)別的文章就介紹到這了,更多相關(guān)SpringBoot @Resource與@Autowired內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解析Arthas協(xié)助排查線上skywalking不可用問題

    解析Arthas協(xié)助排查線上skywalking不可用問題

    這篇文章主要為大家介紹了解析Arthas協(xié)助排查線上skywalking不可用的問題詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-02-02
  • SpringBoot擴展外部化配置的原理解析

    SpringBoot擴展外部化配置的原理解析

    這篇文章主要介紹了SpringBoot擴展外部化配置的原理解析,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • Spring?Boot常用注解(經(jīng)典干貨)

    Spring?Boot常用注解(經(jīng)典干貨)

    Spring?Boot是一個快速開發(fā)框架,快速的將一些常用的第三方依賴整合,全部采用注解形式,內(nèi)置Http服務(wù)器,最終以Java應(yīng)用程序進行執(zhí)行,這篇文章主要介紹了Spring?Boot常用注解(絕對經(jīng)典),需要的朋友可以參考下
    2023-01-01
  • 淺談Maven鏡像更換為阿里云中央倉庫(精)

    淺談Maven鏡像更換為阿里云中央倉庫(精)

    本篇文章主要介紹了Maven鏡像更換為阿里云中央倉庫(精),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • Java實戰(zhàn)之藥品管理系統(tǒng)的實現(xiàn)

    Java實戰(zhàn)之藥品管理系統(tǒng)的實現(xiàn)

    這篇文章主要介紹了利用Java實現(xiàn)的藥品管理系統(tǒng),本項目屬于前后端分離的項目,分為兩個角色藥品管理員和取藥處人員,感興趣的小伙伴可以學習一下
    2022-04-04
  • Spring的@Validation和javax包下的@Valid區(qū)別以及自定義校驗注解

    Spring的@Validation和javax包下的@Valid區(qū)別以及自定義校驗注解

    這篇文章主要介紹了Spring的@Validation和javax包下的@Valid區(qū)別以及自定義校驗注解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • RocketMQ源碼解析topic創(chuàng)建機制詳解

    RocketMQ源碼解析topic創(chuàng)建機制詳解

    這篇文章主要為大家介紹了RocketMQ源碼解析topic創(chuàng)建機制詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • idea切換分支的時候,忽略一些無用的修改設(shè)置

    idea切換分支的時候,忽略一些無用的修改設(shè)置

    這篇文章主要介紹了idea切換分支的時候,忽略一些無用的修改操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Java使用@Retryable注解實現(xiàn)HTTP請求重試

    Java使用@Retryable注解實現(xiàn)HTTP請求重試

    HTTP調(diào)用是Java應(yīng)用與外部API進行交互時重要的訪問方式之一,為了確保在遇到臨時性問題時能自動重試,我們可以設(shè)計一個靈活的重試機制,在Java中,我們可以通過注解來實現(xiàn)這一功能,文將介紹如何使用注解@Retryable來實現(xiàn)HTTP調(diào)用的重試機制,需要的朋友可以參考下
    2024-10-10
  • SpringBoot內(nèi)置tomcat啟動原理詳解

    SpringBoot內(nèi)置tomcat啟動原理詳解

    這篇文章主要介紹了SpringBoot內(nèi)置tomcat啟動原理詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04

最新評論