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

@Autowired與@Resource在實(shí)現(xiàn)對(duì)象注入時(shí)的區(qū)別

 更新時(shí)間:2023年04月21日 11:36:04   作者:竇業(yè)童  
這篇文章主要介紹了@Autowired與@Resource在實(shí)現(xiàn)對(duì)象注入時(shí)的區(qū)別,有需要的朋友可以借鑒參考下,希望能夠有所幫助

簡(jiǎn)述

  • @Autowired 是來(lái)?于 Spring的注解,? @Resource 來(lái)?于 JDK 的注解;

2.@Autowired 可?于 Setter 注?、構(gòu)造函數(shù)注?和屬性注?,? @Resource 只能?于 Setter 注 ?和屬性注?,不能?于構(gòu)造函數(shù)注?

3.使用時(shí)設(shè)置的參數(shù)不同: @Resource 比@Autowired 支持更多的參數(shù)設(shè)置,例如 name 設(shè)置,根據(jù)名稱獲取 Bean。下面詳細(xì)介紹

詳解

相同點(diǎn)1:屬性注入(Field Injection)

@Autowried

@Autowired//自動(dòng)裝配
private UserService userService;

@Resource

@Resource
private UserService userService;

常見(jiàn)面試題:

注入屬性的優(yōu)缺點(diǎn):

優(yōu)點(diǎn):使用簡(jiǎn)單方便

缺點(diǎn):

1.功能缺陷:不能注入一個(gè)不可變的對(duì)象(final對(duì)象)

為什么不能注入一個(gè)final修飾的變量呢?\color{green}{為什么不能注入一個(gè)final修飾的變量呢?}為什么不能注入一個(gè)final修飾的變量呢?

因?yàn)镾pring也要遵循Java的規(guī)范,final修飾的變量必須滿足1.使用時(shí)直接賦值,或者:2.構(gòu)造方法賦值

2.通用性問(wèn)題:只適用于IOC框架(容器)

3設(shè)計(jì)原則問(wèn)題,因?yàn)閷傩宰⑷牒?jiǎn)單方便,所以開(kāi)發(fā)者很容易就違背了單一設(shè)計(jì)原則。

相同點(diǎn)2:setter注入

//2. setter 注入(Setter Injection)
private UserService userService;
@Autowired
public void setUserService(UserService userService){
    this.userService = userService;
}
//使用Resource實(shí)現(xiàn)setter注入
private UserService userService;
@Resource
public void setUserService(UserService userService){
    this.userService = userService;
}

setter注入的優(yōu)點(diǎn):符合單一設(shè)計(jì)原則(一個(gè)setter只針對(duì)一個(gè)對(duì)象)

缺點(diǎn):

  • 和屬性注入一樣,不能注入一個(gè)不可變的對(duì)象(final對(duì)象)
  • 因?yàn)閟etter可以被調(diào)用多次,注入對(duì)象可以被修改,存在被篡改的可能

不同點(diǎn)1:@Autowried可以使用構(gòu)造方法注入,而@Resource不支持構(gòu)造方法注入

@Autowried

//3. 構(gòu)造方法注入(constructor Injection)
private UserService userService;
//當(dāng)當(dāng)前類里面只有一個(gè)構(gòu)造方法的時(shí)候,@Autowired 可以省略,當(dāng)存在多個(gè)構(gòu)造方法時(shí)Autowired不能省略
//可以在一個(gè)構(gòu)造方法中注入多個(gè)對(duì)象,@Autowired也是可以省略的
private UserComponent userComponent;
@Autowired
public UserController(UserService userService, UserComponent userComponent){
    this.userService=userService;
    this.userComponent = userComponent;
}

注意:

1.setter注入和構(gòu)造方法注入@Autowried是添加在方法上面的

2.當(dāng)當(dāng)前類里面只有一個(gè)構(gòu)造方法的時(shí)候,@Autowired 可以省略,當(dāng)存在多個(gè)構(gòu)造方法時(shí),@Autowired不能省略

3.可以在一個(gè)構(gòu)造方法中注入多個(gè)對(duì)象,如果當(dāng)前類里面只有一個(gè)構(gòu)造方法的時(shí)候,@Autowired也是可以省略的

4.在Spring中,一個(gè)類中可以有多個(gè)構(gòu)造方法,但是只能有一個(gè)構(gòu)造方法前面加了@Autowried,否則報(bào)錯(cuò),加了@Autowried的構(gòu)造方法才會(huì)被執(zhí)行。

構(gòu)造方法注入優(yōu)點(diǎn):

  • 能注入一個(gè)final修飾的屬性,因?yàn)樵跇?gòu)造方法中賦值了

  • 因?yàn)闃?gòu)造方法在對(duì)象創(chuàng)建時(shí)就會(huì)執(zhí)行一次,因此他不存在對(duì)象會(huì)被隨時(shí)(調(diào)用)修改的情況,所以注入對(duì)象不會(huì)被修改

  • 因?yàn)闃?gòu)造方法是在類創(chuàng)建之初就會(huì)執(zhí)行的方法,依賴是在類的構(gòu)造方法中的,所以依賴在對(duì)象使用前就會(huì)被完全初始化。

  • 通用性更好,因?yàn)闃?gòu)造方法是Java(JDK)支持的(最底層的框架)

@Resource不支持構(gòu)造方法注入\color{red}{@Resource不支持構(gòu)造方法注入}@Resource不支持構(gòu)造方法注入

不同點(diǎn)2:

出身不同,@Autowried是來(lái)自Spring的注解,@Resource是來(lái)自jdk的注解

不同點(diǎn)3:@Resource支持的參數(shù)比@Autowried

@Resource支持的參數(shù)

@Autowried支持的參數(shù)

舉參數(shù)name的例子來(lái)說(shuō)明 當(dāng)Spring中有多個(gè)@Bean注解,叫User的對(duì)象,

如果直接用

@Autowired//自動(dòng)裝配
private User user;

則會(huì)報(bào)錯(cuò)

Spring為了解決這個(gè)問(wèn)題推出了以下方法:

@Autowired
@Qualifier(value = "UserBeans_user1")
private User user;

而使用@Resource,可以直接地區(qū)Spring中稱為UserBeans_user1的對(duì)象,復(fù)制到當(dāng)前類的user上

@Resource(name = "UserBeans_user1")
private User user;

以上就是@Autowired與@Resource在實(shí)現(xiàn)對(duì)象注入時(shí)的區(qū)別的詳細(xì)內(nèi)容,更多關(guān)于@Autowired與@Resource區(qū)別的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java大數(shù)據(jù)處理的核心技術(shù)MapReduce框架

    Java大數(shù)據(jù)處理的核心技術(shù)MapReduce框架

    MapReduce是一種分布式計(jì)算框架,適用于大規(guī)模的數(shù)據(jù)處理。它將大數(shù)據(jù)分成多個(gè)小數(shù)據(jù)塊,通過(guò)Map和Reduce兩個(gè)階段對(duì)數(shù)據(jù)進(jìn)行處理和分析。MapReduce框架具有可靠、高效、可擴(kuò)展等特點(diǎn),已經(jīng)成為大數(shù)據(jù)處理的核心技術(shù)
    2023-05-05
  • MyBatis實(shí)現(xiàn)配置加載的步驟

    MyBatis實(shí)現(xiàn)配置加載的步驟

    本文主要介紹了MyBatis實(shí)現(xiàn)配置加載的步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Mybatis報(bào)錯(cuò)mapkey is required問(wèn)題及解決

    Mybatis報(bào)錯(cuò)mapkey is required問(wèn)題及解決

    這篇文章主要介紹了Mybatis報(bào)錯(cuò)mapkey is required問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Spring詳細(xì)講解7種事務(wù)傳播方式

    Spring詳細(xì)講解7種事務(wù)傳播方式

    Spring事務(wù)傳播機(jī)制是指,包含多個(gè)事務(wù)的方法在相互調(diào)用時(shí),事務(wù)是如何在這些方法間傳播的。本文通過(guò)示例詳細(xì)介紹了Spring的事務(wù)傳播機(jī)制,需要的可以參考一下
    2023-01-01
  • Spring?component-scan?XML配置與@ComponentScan注解配置

    Spring?component-scan?XML配置與@ComponentScan注解配置

    這篇文章主要介紹了Spring?component-scan?XML配置與@ComponentScan注解配置,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • 帶你了解Java數(shù)據(jù)結(jié)構(gòu)和算法之前綴,中綴和后綴表達(dá)式

    帶你了解Java數(shù)據(jù)結(jié)構(gòu)和算法之前綴,中綴和后綴表達(dá)式

    這篇文章主要為大家介紹了Java的前綴,中綴和后綴表達(dá)式 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-01-01
  • java實(shí)現(xiàn)同態(tài)加密算法的實(shí)例代碼

    java實(shí)現(xiàn)同態(tài)加密算法的實(shí)例代碼

    這篇文章主要給大家介紹了關(guān)于java實(shí)現(xiàn)同態(tài)加密算法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Java如何通過(guò)File類方法刪除指定文件夾中的全部文件

    Java如何通過(guò)File類方法刪除指定文件夾中的全部文件

    這篇文章主要給大家介紹了關(guān)于Java如何通過(guò)File類方法刪除指定文件夾中的全部文件的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Java 生成二維碼的工具資料整理

    Java 生成二維碼的工具資料整理

    本文主要介紹Java 生成二維碼的幾種方法,這里給大家詳細(xì)介紹了java生成二維碼的三種工具,并附有示例代碼供大家參考,開(kāi)發(fā)java 二維碼的朋友可以參考下
    2016-08-08
  • idea debug沒(méi)有force step into的問(wèn)題解決

    idea debug沒(méi)有force step into的問(wèn)題解決

    本文主要介紹了IDEA Debug中ForceStepInto按鈕消失的問(wèn)題及解決方法,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-10-10

最新評(píng)論

清徐县| 郁南县| 得荣县| 仙游县| 洪江市| 洛宁县| 汤原县| 天台县| 平阴县| 宁城县| 惠水县| 思南县| 光山县| 贵阳市| 自治县| 克什克腾旗| 保亭| 淅川县| 新邵县| 高平市| 芷江| 长子县| 马边| 临武县| 漳平市| 平陆县| 天水市| 甘孜县| 广昌县| 通州市| 大方县| 衢州市| 镇沅| 安阳县| 淳安县| 新民市| 武鸣县| 油尖旺区| 房产| 阿克陶县| 云林县|