天天看點

面試修羅場變單人秀場:Java面試題解析。最近有非常多的小夥伴從大廠畢業了,也導緻招聘卷的相當厲害,不管是應屆生還是中開

作者:Tom彈架構

面試修羅場變單人秀場:Java面試題解析。

最近有非常多的小夥伴從大廠畢業了,也導緻招聘卷的相當厲害,不管是應屆生還是中開還是高開都會問到一些技術的底層原理,也還會經常問到一些日常開發不太需要了解的知識點對比。今天我就給大家來分享一個應屆生被問到的一道面試題。

在Spring中@Autowired注解和@Resource注解的差別。另外我花了一個多星期把往期的面試解析配套文檔已經準備好了,想擷取的小夥伴可以在我的首頁簡介中找到。

·先來看@Autowired這個注解。@Au是由Spring提供的,它可以用來對構造方法、産業變量以及方法參數上進行标注,它能夠根據對象的類型完成自動注入。

·再來看@Resource這個注解是由JDK提供的,它遵循SR-50這個規範,是到DK1.6以上加入的一個新特性。@Res作為的标準它的作用和@Autowired基本上沒有什麼差別。當然與@Autowired不同的是,它可以适用于所有的Java架構,而@Autowired隻适用于Spring,簡單了解就是@Resource它能夠支援對象類型的注入,也能夠支援對象名稱的注入。

·那@Resource和@Autowired之間具體有哪些差別呢?我從以下五個方面來進行分析。

→第一個是注解内部定義的參數不同。@Autowired隻包含了一個required參數,它預設訓示為@Autowired表示開啟自動注入,而@Resource它包含七個參數,其中最重要的是兩個,一個叫做name,一個叫做type。

→第二個就是裝配方式的預設值不同。@Autowired預設是按type自動裝配的,而@Resource預設是按name自動裝配。當然@Resource注解可以自定義選擇,如果選擇了name,則根據name自動裝配;如果指定了type就用type來進行自動裝配。

→第三個就是注解的應用範圍不同。@Autowired能夠用在各個方法還原備量和方法參數上以及注解上。

·而@Resource它能夠用在類變量方法參數上,這一點從源碼上就可以看得出來。

·第四個是出處不同。@Autowired是Spring定義的注解,而@Resource是遵循JSR-250的一個規範,它是定義在JDK中,@Autowired隻能在Spring架構下使用,而@Resource就可以與其它架構一起來使用。

·第五個是裝載順序不同。@Autowired預設是按照Type來進行比對,如果發現有多閃pea圖解就會按照饋的方式進行比對,@Re如果指定了iname也有多閃bot就會直接抛出異常。

而@Resource的裝載順序,它分為四種情況。

→第一種就是如果指定了@Re,就會從Spring的上下文中去找到@Re比對的bean進行裝配,@如果找不到就會抛出異常。具體流程如圖所示。

→第二種情況是如果既沒有指定name,就會從上往下去查找名稱,也就是@Re也就是第6A進行比對,@如果找不到就會抛出異常。具體流程如圖所示。

→第三種情況就是如果指定了@Re,也就是會從上往下找到一個@Re進行裝配,@如果找不到或者找到多個,也會抛出異常。@Reso也會抛出異常。具體流程如圖所示。

→第四種情況就是如果既沒有指定name,也沒有指定type,就會自動根據byName的方式進行比對,@Res那如果沒有比對,就會退回按照類型的碼式進行比對。@Re具體流程如圖所示,為承幫助大家更好的了解和區分。@Bean("bean的名字")注入:@Autowired @中路wired ArtWti"bean的名字"),Xxx.class)。我還專門花時間整理了一張表格,@Resourc我還專門花時間整理了一張表格上。

以上就是我對@Autowired和@Resource的總結和了解。最後總結一下,兩者的功能上差别并不大,使用型的也差不多。

但是在日常開發中,我建議使用@Autowired。有以下三個理由:

·第一是奧特瑞艾特的功能略為強。它的功能略為強大,它支援優先注入,也可以去配置允許bean不存在。

·第二個就是如果使用了Spring架構,使用它特有的注解,個人感覺會更好一點。

·第三個有人可能會認為@Resource會更加的通用,因為它是一個規範,而其它架構也會支援。但是我個人認為目前後端都是采用Spring,是以也沒有必要去考慮其它的架構。當然了,這個跟我個人是Spring迷無關。如果你也是Spring的小迷粉,可以關注我一起交流,共同進步。

我是被程式設計耽誤的文藝Tom,如果我的分享對你有幫助,請你動動手指,一鍵三連,分享給更多的人,關注我,面試不再難。

面試修羅場變單人秀場:Java面試題解析。最近有非常多的小夥伴從大廠畢業了,也導緻招聘卷的相當厲害,不管是應屆生還是中開
面試修羅場變單人秀場:Java面試題解析。最近有非常多的小夥伴從大廠畢業了,也導緻招聘卷的相當厲害,不管是應屆生還是中開
面試修羅場變單人秀場:Java面試題解析。最近有非常多的小夥伴從大廠畢業了,也導緻招聘卷的相當厲害,不管是應屆生還是中開
面試修羅場變單人秀場:Java面試題解析。最近有非常多的小夥伴從大廠畢業了,也導緻招聘卷的相當厲害,不管是應屆生還是中開
面試修羅場變單人秀場:Java面試題解析。最近有非常多的小夥伴從大廠畢業了,也導緻招聘卷的相當厲害,不管是應屆生還是中開
面試修羅場變單人秀場:Java面試題解析。最近有非常多的小夥伴從大廠畢業了,也導緻招聘卷的相當厲害,不管是應屆生還是中開
面試修羅場變單人秀場:Java面試題解析。最近有非常多的小夥伴從大廠畢業了,也導緻招聘卷的相當厲害,不管是應屆生還是中開