加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

autowired和resource注解的區(qū)別

04/16 16:01
548
閱讀需 3 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

硬件型號:戴爾靈越7400

系統(tǒng)版本:windows10

在 Spring 框架中,@Autowired 和 @Resource 是兩種常用的注解,用于實(shí)現(xiàn)依賴注入和裝配 bean。雖然它們都可以用于自動裝配 bean,但它們之間存在一些重要的區(qū)別。

@Autowired 注解:

  • @Autowired?是 Spring 提供的注解,通過類型匹配進(jìn)行自動裝配。
  • @Autowired?可以標(biāo)注在字段、構(gòu)造方法、Setter 方法或普通方法上,Spring 會根據(jù)類型自動裝配對應(yīng)的 bean。
  • 當(dāng)多個(gè) bean 類型與要裝配的類型匹配時(shí),@Autowired 可能會遇到歧義性,此時(shí)需要結(jié)合 @Qualifier 注解指定具體的 bean。

@Resource 注解:

  • @Resource?是 JavaEE 提供的注解,通過名稱匹配進(jìn)行自動裝配。
  • @Resource?可用于字段、Setter 方法或構(gòu)造方法上,并且支持按照名稱指定要裝配的 bean,如果不指定名稱,則默認(rèn)按照屬性名進(jìn)行匹配。
  • @Resource?不支持 @Qualifier 注解,無法解決多個(gè)同類型 bean 的裝配問題。

區(qū)別總結(jié):

  • @Autowired?基于類型進(jìn)行自動裝配,而?@Resource?基于名稱進(jìn)行自動裝配。
  • @Autowired?是 Spring 的注解,而?@Resource?是 JavaEE 的注解。
  • @Autowired?支持更靈活的裝配方式,但在處理多個(gè)同類型 bean 時(shí)可能會出現(xiàn)歧義,需使用 @Qualifier 解決;而?@Resource?在這方面較為簡單,但缺乏靈活性。

使用場景:

  • 如果你想要基于類型進(jìn)行自動裝配,并且希望具有更大的靈活性來處理多個(gè)同類型 bean,可以選擇使用?@Autowired?注解。
  • 如果你更傾向于基于名稱進(jìn)行自動裝配,并且對處理同類型 bean 不太在意,可以選擇使用?@Resource?注解。

@Autowired@Resource 注解在實(shí)現(xiàn)依賴注入時(shí)有著不同的特點(diǎn)和適用場景。

相關(guān)推薦

電子產(chǎn)業(yè)圖譜