国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用@Component時再使用@Resource或@Autowired時注入失敗問題

這篇具有很好參考價值的文章主要介紹了使用@Component時再使用@Resource或@Autowired時注入失敗問題。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言

@Component注解的類下,再使用了@Resource@Autowired注解。如此操作會導致依賴注入失敗。

這是因為spring加載它們的順序不同,在使用@Component注解將bean實例化到spring容器內(nèi)的時候,因為@Autowired是在這個bean之中的,此時@Autowired還未完成自動裝載,所以導致依賴注入的service為null

@Component和@Autowired或@Resource

在Spring應用程序中,@Component注解用于將類標記為可自動掃描的組件。當Spring容器啟動時,會掃描帶有@Component注解的類,并將它們實例化為bean。這些bean會被添加到Spring容器的bean工廠中,以便在應用程序中使用。

@Autowired注解用于在Spring應用程序中進行依賴注入。當Spring容器創(chuàng)建帶有@Autowired注解的bean時,會自動查找匹配的類型進行注入。如果找到多個匹配的類型,則會拋出異常。

@Resource注解也可以用于在Spring應用程序中進行依賴注入。當Spring容器創(chuàng)建帶有@Resource注解的bean時,會優(yōu)先使用名稱匹配進行注入。如果找不到匹配的名稱,則會使用類型匹配進行注入。

因此,在Spring應用程序中,@Component注解的類會在@Autowired@Resource注解的類之前被加載。@Autowired注解會優(yōu)先使用類型匹配進行依賴注入,而@Resource注解則會優(yōu)先使用名稱匹配進行依賴注入。

在使用@Component@Autowired@Resource注解進行依賴注入時,還需要注意以下幾點:

  1. 如果希望使用@Autowired注解注入多個匹配的類型,可以使用@Qualifier注解指定具體的bean名稱。
  2. 如果希望使用@Autowired@Resource注解注入非必需的依賴,可以使用@Autowired(required=false)@Resource(required=false)。
  3. 如果希望使用@Autowired@Resource注解注入的依賴不存在,可以使用@Autowired(required=false)@Resource(required=false),并在代碼中進行相應的處理。
  4. 如果希望使用@Autowired@Resource注解注入的依賴可以為null,可以使用@Autowired(required=false)@Resource(required=false),并在代碼中進行相應的處理。
  5. 如果希望使用@Autowired@Resource注解注入的依賴可以為null,可以使用@Autowired(required=false)@Resource(required=false),并在代碼中進行相應的處理。

解決方法

@Component
public class Test  {

    private final Logger logger = LoggerFactory.getLogger(this.getClass());

//    @Autowired
//    private UserServer userServer;

    private static UserServer userServer;

    @Autowired
    public void setUserServer(UserServer userServer) {
        Test.userServer = userServer;
    }    
}


@Autowired注解放在方法上會在類加載后自動注入這個方法的參數(shù),并執(zhí)行一遍方法。文章來源地址http://www.zghlxwxcb.cn/news/detail-456523.html

到了這里,關(guān)于使用@Component時再使用@Resource或@Autowired時注入失敗問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關(guān)文章

  • Spring Boot——@Autowired屬性注入問題

    Spring Boot——@Autowired屬性注入問題

    當我們在使用 @Autowired 屬性注入時,會發(fā)現(xiàn)idea提示 Field injection is not recommended ,譯為: 不推薦使用屬性注入 ??要想了解Spring和idea之所以不推薦使用@Autowired屬性注入,首先就要先了解Spring常用的注入方式:簡單類型注入、集合類型注入, 域?qū)傩宰詣幼⑷? 自動注入的類別, 空值注

    2024年02月06日
    瀏覽(20)
  • 使用 @Autowired 依賴注入時警告不建議使用字段注入

    使用 @Autowired 依賴注入時警告不建議使用字段注入

    在 Spring 中注入依賴時有 字段注入 、 構(gòu)造器注入 、S etter 方法注入 三種注入方式。 無法注入 final 字段 在 Spring 2.5 中引入了 @Autowired 注解,它可以對類成員變量、方法及構(gòu)造函數(shù)進行標注,完成自動裝配的工作。在成員變量上使用 @Autowired 注解可以進行字段注入,如下:

    2024年02月05日
    瀏覽(46)
  • 解決Spring Boot單元測試中@Autowired依賴注入失效的問題

    本文介紹了在Spring Boot單元測試中使用@Autowired注入的方法中,由于使用反射導致依賴注入失效的問題,以及如何使用AutowiredAnnotationBeanPostProcessor手動處理依賴注入來解決這個問題。 在Spring Boot的單元測試中,我們經(jīng)常使用@Autowired注解來自動注入需要測試的對象或依賴。然而,

    2024年02月03日
    瀏覽(26)
  • 記--springboot-工具類中使用@Component、@Resource與@Value失效

    寫一個工具類 需要使用@Resource注入RedisTemplate 使用@Value獲取application.properties配置文件中配置 并使用@Component將該工具類交個spring管理 調(diào)試的時候RedisTemplate以及所有的變量全是是null 看了網(wǎng)上的各種解決方式五花八門 有的說出現(xiàn)問題的原因:@Component這個注解把該類注入到spr

    2024年02月02日
    瀏覽(15)
  • @Resource和@Autowired的區(qū)別

    @Resource和@Autowired這兩個注解的作用都是在Spring生態(tài)里面去實現(xiàn)Bean的依賴注入 首先,@Autowired是Spring里面提供的一個注解,默認是根據(jù)類型來實現(xiàn)Bean的依賴注入。 @Autowired注解里面有一個required屬性默認值是true,表示強制要求bean實例的注入,在應用啟動的時候,如果IOC容器里

    2024年02月08日
    瀏覽(18)
  • autowired和resource注解的區(qū)別

    注入規(guī)則不同 Autowired注解是spring的注解,此注解只根據(jù)type進行注入,不會去匹配name.但是如果只根據(jù)type無法辨別注入對象時,就需要配合使用@Qualifier注解或者@Primary注解使用。 Resource注解有兩個重要的屬性,分別是name和type,如果name屬性有值,則使用byName的自動注入策略,將值

    2024年02月10日
    瀏覽(14)
  • @Autowired 和 @Resource 的區(qū)別是什么?

    Java面試題目錄 @Autowired 和 @Resource 的區(qū)別是什么? @Autowired 是 Spring 提供的注解。默認的注入方式為byType(根據(jù)類型進行匹配)。 @Resource 是 JDK 提供的注解。默認注入方式為 byName(根據(jù)名稱進行匹配)。 當一個接口存在多個實現(xiàn)類的情況下,@Autowired 和@Resource都需要通過名稱

    2024年01月19日
    瀏覽(25)
  • 簡述@Autowired和@Resource的區(qū)別(通俗易懂)

    前言:在日常的開發(fā)項目當中,這兩個注解是經(jīng)常會用到的,但是在實際使用當中好像使用起來并沒有多大區(qū)別,這里我就對這兩個注解進行一個詳細的區(qū)別總結(jié),通過一個完整的典型例子進行論證,思路清晰明了。 目錄 一、結(jié)論 二、典型案例 2.1、準備代碼 2.2、使用@A

    2024年02月03日
    瀏覽(20)
  • SpringBoot使用@Autowired將實現(xiàn)類注入到List或者Map集合中

    SpringBoot使用@Autowired將實現(xiàn)類注入到List或者Map集合中

    最近看到 RuoYi-Vue-Plus 翻譯功能 Translation 的翻譯模塊配置類 TranslationConfig ,其中有一個注入 TranslationInterface 翻譯接口實現(xiàn)類的寫法讓我感到很新穎,但這種寫法在Spring 3.0版本以后就已經(jīng)支持注入 List 和 Map ,平時都沒有注意到這一塊,故此記錄一下這種寫法。 之前一般定義

    2024年02月14日
    瀏覽(17)
  • Spring高手之路-@Autowired和@Resource注解異同點

    Spring高手之路-@Autowired和@Resource注解異同點

    目錄 概述 相同點 1.都可以實現(xiàn)依賴注入 2.都可以用于注入任意類型的Bean 3.都支持通過名稱、類型匹配進行注入 不同點 1.來源不同。 2.包含的屬性不同 3.匹配方式(裝配順序)不同。 4.支持的注入對象類型不同 5.應用地方不同 @Autowired 和 @Resource 是在 Java 開發(fā)中用于實現(xiàn)依賴

    2024年02月03日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包