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

Spring中@Autowired和@Resource注解相同點和不同點

 更新時間:2024年01月02日 11:05:17   投稿:mrr  
這篇文章主要介紹了Spring中@Autowired和@Resource注解相同點和不同點,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧

相同點

  • 都可以實現(xiàn)依賴注入,通過注解將需要的Bean自動注入到目標(biāo)類中。
  • 都可以用于注入任意類型的Bean,包括類、接口、原始類型、數(shù)組等。
  • 都支持通過名稱、類型匹配進(jìn)行注入(@Autowired 注解默認(rèn)按照類型匹配,而 @Resource 注解默認(rèn)按照名稱匹配)
@Autowired
private Bean beanA;
@Resource
private Bean beanB;

在Spring容器中這兩個注解功能基本是等價的,都可以將bean注入到對應(yīng)的字段中。

不同點

雖然功能上看起來基本相同還是存在區(qū)別的下面從幾個不同方面分析

1.來源不同。

@Autowired 是 Spring 框架提供的注解。

@Resource 是 JavaEE(現(xiàn)在的 JakartaEE)規(guī)范中定義的注解。

2.包含的屬性不同

@Autowired 只包含一個參數(shù):required,表示是否開啟自動注入,默認(rèn)是true。

@Resource 包含七個參數(shù),其中最重要的兩個參數(shù)是:name 和 type。

3.匹配方式(裝配順序)不同。

@Autowired 默認(rèn)先按照類型進(jìn)行自動裝配,再是根據(jù)名稱的方式。意思就是先在Spring容器中找以Bean為類型的Bean實例,如果找不到或者找到多個bean,則會進(jìn)一步通過字段名稱來找。當(dāng)有多個同類型的 Bean 存在時,也可以通過 @Qualifier 注解指定具體的 Bean。

@Component
public class UserService {
    @Autowired
    @Qualifier("userRepository")//如果有多個同類型的Bean,可以使用@Qualifier注解指定具體的Bean
    private UserRepository userRepository;
    // ...
}

@Resource 和@Autowired恰好相反,先是按照名稱方式,然后再是按照類型方式;當(dāng)然,我們也可以通過注解中的參數(shù)顯示指定通過哪種方式。如果有多個同名的Bean,可以使用@Resource注解的name屬性指定具體的Bean

默認(rèn)使用

@Component
public class UserService {
    @Resource//不指定任何屬性
    private UserRepository userRepository;
    // ...
}

指定name

@Component
public class UserService {
    @Resource(name = "userRepository")//使用name屬性指定具體的Bean
    private UserRepository userRepository;
    // ...
}

指定type

@Component
public class UserService {
    @Resource(type = UserRepository.class)//使用type屬性指定Bean類型
    private UserRepository userRepository;
    // ...
}

指定name和type

@Component
public class UserService {
    @Resource(type = "UserRepository.class",name = "userRepository")//使用type屬性指定Bean類型,name指定Bean名稱
    private UserRepository userRepository;
    // ...
}

4.支持的注入對象類型不同

@Autowired 可以注入任何類型的對象,只要 Spring 容器中存在該類型的 Bean。

@Resource 注解可以用于注入 JNDI 名稱(JNDI名稱可以是任何字符串,但通常使用具有描述性的名稱來標(biāo)識資源。在應(yīng)用程序中,可以使用JNDI名稱來查找和綁定對象)或者默認(rèn)按照名稱匹配的 Bean

5.應(yīng)用地方不同

@Autowired能夠用在:構(gòu)造器、方法、參數(shù)、成員變量和注解上

@Resource能用在:類、成員變量和方法上。

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

相關(guān)文章

  • WebSocket實現(xiàn)系統(tǒng)后臺消息實時通知功能

    WebSocket實現(xiàn)系統(tǒng)后臺消息實時通知功能

    在現(xiàn)代Web應(yīng)用中,提供實時通知對于改善用戶體驗至關(guān)重要,WebSocket技術(shù)允許建立雙向通信通道,從系統(tǒng)后臺將消息實時傳送給系統(tǒng)用戶,下面我們就來深入探討一下如何使用WebSocket來實現(xiàn)這一功能吧
    2023-10-10
  • Spring Security 多過濾鏈的使用詳解

    Spring Security 多過濾鏈的使用詳解

    本文主要介紹了Spring Security 多過濾鏈的使用,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • restTemplate超時處理的策略方案

    restTemplate超時處理的策略方案

    這篇文章主要為大家介紹了restTemplate超時處理的策略方案,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • SpringCloud服務(wù)的發(fā)現(xiàn)與調(diào)用詳解

    SpringCloud服務(wù)的發(fā)現(xiàn)與調(diào)用詳解

    在Java微服務(wù)越來越火的今天。幾乎什么公司都在搞微服務(wù)。而使用的比較多的就是Spring?Cloud技術(shù)棧。今天就來研究一下Spring?Cloud中服務(wù)發(fā)現(xiàn)與調(diào)用的基本原理
    2022-07-07
  • SpringBoot統(tǒng)一返回處理出現(xiàn)cannot?be?cast?to?java.lang.String異常解決

    SpringBoot統(tǒng)一返回處理出現(xiàn)cannot?be?cast?to?java.lang.String異常解決

    這篇文章主要給大家介紹了關(guān)于SpringBoot統(tǒng)一返回處理出現(xiàn)cannot?be?cast?to?java.lang.String異常解決的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-09-09
  • javabean servlet jsp實現(xiàn)分頁功能代碼解析

    javabean servlet jsp實現(xiàn)分頁功能代碼解析

    這篇文章主要為大家詳細(xì)解析了javabean servlet jsp實現(xiàn)分頁功能代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • java?Springboot對接開發(fā)微信支付詳細(xì)流程

    java?Springboot對接開發(fā)微信支付詳細(xì)流程

    最近要做一個微信小程序,需要微信支付,所以研究了下怎么在java上集成微信支付功能,下面這篇文章主要給大家介紹了關(guān)于java?Springboot對接開發(fā)微信支付的相關(guān)資料,需要的朋友可以參考下
    2024-08-08
  • SpringBoot讀寫操作yml配置文件方法

    SpringBoot讀寫操作yml配置文件方法

    之前一直用的application.properties配置文件,只能是KV結(jié)構(gòu),后來的yml配置文件更像是樹狀結(jié)構(gòu),支持層級,比properties更靈活
    2023-01-01
  • java實現(xiàn)對Hadoop的操作

    java實現(xiàn)對Hadoop的操作

    這篇文章主要介紹了java實現(xiàn)對Hadoop的操作,通過非常完整詳細(xì)的代碼展示了如何去進(jìn)行一系列操作,包括基本操作,文件讀寫,需要的朋友可以參考下
    2021-07-07
  • java中如何反射獲取一個類

    java中如何反射獲取一個類

    大家說說對java反射的理解,使用反射如何獲取一個類,下面小編給大家整理一些資料,關(guān)于java中如何反射獲取一個類,有需要的朋友可以參考下
    2015-08-08

最新評論