欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決springboot遇到autowire注入為null的問題

 更新時(shí)間:2021年03月02日 11:15:30   作者:ZERO_No1  
這篇文章主要介紹了解決springboot遇到autowire注入為null的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

這個問題困擾了很久,有些類不是controller在使用autowired注入的類顯示為空,找到網(wǎng)上的方法是在類初始化時(shí)主動注入被Autowired的類,如下圖

這樣的方法是可行的,最后引用時(shí)使用上圖中doubleTeachSendMsg.doubleTeachService.sendMsg();方法即可,但是使用起來未免太麻煩,而且也不是spring依賴注入的原則,這個出現(xiàn)原因其實(shí)就是此類是在bean加載之前被調(diào)用,或者springboot在加載時(shí)沒有識別到此類,所以注入為空,要想使此類被識別到,那么就要在啟動時(shí)被spring識別到,需要將其變?yōu)閎ean對象并被識別到。如下圖

springboot啟動會掃描configuration,正常添加信息在最下面的是new MyWebSocketHandler(),在此處使用spring的依賴注入,使spring識別到此類,這樣,添加的autowired方法就不會是null了,并且也不需要在添加 這種方式了

補(bǔ)充:關(guān)于springboot使用@Autowired注解向非controller類中注入bean為null的問題

這種問題一般分為2種情況

第一種情況:

如果你要在java A類中 使用@Autowired注入java B類,如果注入不了的話,通過添加以下三個關(guān)鍵的地方,可以解決該問題:

關(guān)于@PostConstruct:被@PostConstruct修飾的方法會在服務(wù)器加載Servlet的時(shí)候運(yùn)行,并且只會被服務(wù)器調(diào)用一次,類似于Serclet的inti()方法。

被@PostConstruct修飾的方法會在構(gòu)造函數(shù)之后,init()方法之前運(yùn)行

@Component
public class A{ 
  @Autowired
  public B b;
  public static A a;
  @PostConstruct //通過@PostConstruct實(shí)現(xiàn)初始化bean之前進(jìn)行的操作
  public void init() {
    a= this;
    a.b= this.b;    
  }

有三個地方需要注意一下(敲黑板!):

1.@Component

2.public static A a; 注意這個為 public 不然沒有權(quán)限

3.@PostConstruct public void init() {}

第二種情況:

你要被注入的類繼承了thread類,這樣的話你通過上面的方法來做的,仍然注入不進(jìn)去,原因是因?yàn)閟pring的非線程安全問題,不讓你注入,注入的結(jié)果是null

解決辦法寫一個構(gòu)造函數(shù)或者set和get方法把你要注入的service傳進(jìn)來就好

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • 如何在SpringBoot 中使用 Druid 數(shù)據(jù)庫連接池

    如何在SpringBoot 中使用 Druid 數(shù)據(jù)庫連接池

    這篇文章主要介紹了SpringBoot 中使用 Druid 數(shù)據(jù)庫連接池的實(shí)現(xiàn)步驟,幫助大家更好的理解和學(xué)習(xí)使用SpringBoot,感興趣的朋友可以了解下
    2021-03-03
  • Java開發(fā)神器Lombok使用詳解

    Java開發(fā)神器Lombok使用詳解

    這篇文章主要介紹了Java開發(fā)神器Lombok使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • linux環(huán)境下java程序打包成簡單的hello world輸出jar包示例

    linux環(huán)境下java程序打包成簡單的hello world輸出jar包示例

    這篇文章主要介紹了linux環(huán)境下java程序打包成簡單的hello world輸出jar包,結(jié)合簡單hello world輸出程序示例分析了Linux環(huán)境下的java可執(zhí)行jar包文件的生成相關(guān)操作技巧,需要的朋友可以參考下
    2019-11-11
  • SpringBoot中?Jackson?日期的時(shí)區(qū)和日期格式問題解決

    SpringBoot中?Jackson?日期的時(shí)區(qū)和日期格式問題解決

    因?yàn)樽罱?xiàng)目需要國際化,需要能夠支持多種國際化語言,目前需要支持三種(法語、英語、簡體中文),這篇文章主要介紹了SpringBoot中?Jackson?日期的時(shí)區(qū)和日期格式問題,需要的朋友可以參考下
    2022-12-12
  • 解決SpringAop內(nèi)部調(diào)用時(shí)不經(jīng)過代理類的問題

    解決SpringAop內(nèi)部調(diào)用時(shí)不經(jīng)過代理類的問題

    這篇文章主要介紹了解決SpringAop內(nèi)部調(diào)用時(shí)不經(jīng)過代理類的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • 深入分析Comparable與Comparator及Clonable三個Java接口

    深入分析Comparable與Comparator及Clonable三個Java接口

    接口不是類,而是對類的一組需求描述,這些類要遵從接口描述的統(tǒng)一格式進(jìn)行定義,這篇文章主要為大家詳細(xì)介紹了Java的Comparable,Comparator和Cloneable的接口,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-05-05
  • MyBatis-plus 模糊查詢的使用

    MyBatis-plus 模糊查詢的使用

    這篇文章主要介紹了MyBatis-plus 模糊查詢的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 將Java程序包打包為.exe文件的操作步驟

    將Java程序包打包為.exe文件的操作步驟

    將Java程序打包為為.exe文件分為倆個步驟:將Java程序打包成Jar包和打包為.exe文件,文中通過圖文結(jié)合的方式給大家講解的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下
    2024-06-06
  • SpringBoot+WebSocket搭建簡單的多人聊天系統(tǒng)

    SpringBoot+WebSocket搭建簡單的多人聊天系統(tǒng)

    WebSocket是一種在單個TCP連接上進(jìn)行全雙工通信的協(xié)議。這是一種比較官方的說法,簡單點(diǎn)來說就是,在一次TCP連接中,通信的雙方可以相互通信。這篇文章主要介紹了SpringBoot+WebSocket搭建簡單的多人聊天系統(tǒng),需要的朋友可以參考下
    2019-10-10
  • java 輸入一個數(shù)字組成的數(shù)組(輸出該數(shù)組的最大值和最小值)

    java 輸入一個數(shù)字組成的數(shù)組(輸出該數(shù)組的最大值和最小值)

    這篇文章主要介紹了java 輸入一個數(shù)字組成的數(shù)組,輸出該數(shù)組的最大值和最小值,需要的朋友可以參考下
    2017-02-02

最新評論