最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring中@Autowired和@Resource注解相同點(diǎn)和不同點(diǎn)

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

相同點(diǎn)

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

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

不同點(diǎn)

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

1.來(lái)源不同。

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

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

2.包含的屬性不同

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

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

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

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

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

@Resource 和@Autowired恰好相反,先是按照名稱方式,然后再是按照類型方式;當(dāng)然,我們也可以通過(guò)注解中的參數(shù)顯示指定通過(guò)哪種方式。如果有多個(gè)同名的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.支持的注入對(duì)象類型不同

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

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

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

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

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

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

相關(guān)文章

  • Springboot新建項(xiàng)目Spring Initializr Error問(wèn)題及解決

    Springboot新建項(xiàng)目Spring Initializr Error問(wèn)題及解決

    這篇文章主要介紹了Springboot新建項(xiàng)目Spring Initializr Error問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Spring實(shí)現(xiàn)數(shù)據(jù)庫(kù)讀寫(xiě)分離詳解

    Spring實(shí)現(xiàn)數(shù)據(jù)庫(kù)讀寫(xiě)分離詳解

    這篇文章主要介紹了Spring?實(shí)現(xiàn)數(shù)據(jù)庫(kù)讀寫(xiě)分離,大多數(shù)系統(tǒng)都是讀多寫(xiě)少,為了降低數(shù)據(jù)庫(kù)的壓力,可以對(duì)主庫(kù)創(chuàng)建多個(gè)從庫(kù),從庫(kù)自動(dòng)從主庫(kù)同步數(shù)據(jù),程序中將寫(xiě)的操作發(fā)送到主庫(kù),將讀的操作發(fā)送到從庫(kù)去執(zhí)行,需要的朋友可以參考下
    2024-01-01
  • Java分布式服務(wù)框架Dubbo介紹

    Java分布式服務(wù)框架Dubbo介紹

    這篇文章介紹了Java分布式服務(wù)框架Dubbo,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • 使用@slf4j找不到符號(hào)log的問(wèn)題及解決

    使用@slf4j找不到符號(hào)log的問(wèn)題及解決

    這篇文章主要介紹了使用@slf4j找不到符號(hào)log的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Java集合Set的簡(jiǎn)單使用解析

    Java集合Set的簡(jiǎn)單使用解析

    這篇文章主要介紹了Java集合Set的簡(jiǎn)單使用解析,Set接口是Collection的子接口,Set接口相較于Collection接口沒(méi)有提供額外的方法,Set 集合不允許包含相同的元素,如果試把兩個(gè)相同的元素加入同一個(gè) Set 集合中,則添加操作失敗,需要的朋友可以參考下
    2023-11-11
  • Mybatis聯(lián)合查詢的實(shí)現(xiàn)方法

    Mybatis聯(lián)合查詢的實(shí)現(xiàn)方法

    本文主要介紹了 Mybatis聯(lián)合查詢的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • GSON實(shí)現(xiàn)Java對(duì)象的JSON序列化與反序列化的實(shí)例教程

    GSON實(shí)現(xiàn)Java對(duì)象的JSON序列化與反序列化的實(shí)例教程

    GSON是Google開(kāi)發(fā)并開(kāi)源的一個(gè)Java的JSON轉(zhuǎn)換庫(kù),這里我們將來(lái)講解GSON實(shí)現(xiàn)Java對(duì)象的JSON序列化與反序列化的實(shí)例教程,需要的朋友可以參考下
    2016-06-06
  • 詳解JAVA 時(shí)間處理相關(guān)類

    詳解JAVA 時(shí)間處理相關(guān)類

    這篇文章主要介紹了JAVA 時(shí)間處理相關(guān)類的知識(shí),文中示例代碼非常詳細(xì),供大家參考和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • java封裝及四種權(quán)限修飾符詳解

    java封裝及四種權(quán)限修飾符詳解

    這篇文章主要介紹了java封裝及四種權(quán)限修飾符詳解,對(duì)屬性進(jìn)行封裝,使用戶不能直接輸入數(shù)據(jù),我們需要避免用戶再使用"對(duì)象.屬性"的方式對(duì)屬性進(jìn)行賦值
    2022-08-08
  • Java Chaos Game噪聲游戲?qū)嵗a

    Java Chaos Game噪聲游戲?qū)嵗a

    這篇文章主要介紹了Java Chaos Game噪聲游戲?qū)嵗a,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12

最新評(píng)論

贵德县| 麟游县| 峨眉山市| 正阳县| 铁岭市| 资兴市| 叙永县| 阜康市| 新民市| 澄城县| 琼中| 滦南县| 庆云县| 巴里| 四川省| 十堰市| 佳木斯市| 诸暨市| 汝州市| 沙坪坝区| 湄潭县| 晋中市| 太原市| 玛纳斯县| 江阴市| 海安县| 西丰县| 藁城市| 阿瓦提县| 平潭县| 东兴市| 邻水| 湘潭县| 三穗县| 嘉荫县| 乌兰浩特市| 烟台市| 洮南市| 义乌市| 广州市| 乌兰察布市|