久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

解決springboot遇到autowire注入為null的問(wèn)題

瀏覽:2日期:2023-03-23 09:45:58

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

解決springboot遇到autowire注入為null的問(wèn)題

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

解決springboot遇到autowire注入為null的問(wèn)題

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

解決springboot遇到autowire注入為null的問(wèn)題

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

這種問(wèn)題一般分為2種情況

第一種情況:

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

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

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

@Componentpublic class A{ @Autowired public B b; public static A a; @PostConstruct //通過(guò)@PostConstruct實(shí)現(xiàn)初始化bean之前進(jìn)行的操作 public void init() { a= this; a.b= this.b; }有三個(gè)地方需要注意一下(敲黑板!):

1.@Component

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

3.@PostConstruct public void init() {}

第二種情況:

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

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

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 汝阳县| 扎赉特旗| 肥城市| 和龙市| 秀山| 公安县| 和静县| 张北县| 南阳市| 吉木萨尔县| 济南市| 钟山县| 和政县| 武安市| 根河市| 神池县| 红桥区| 贡嘎县| 兴隆县| 晋宁县| 岳阳县| 铁岭县| 卓尼县| 牙克石市| 文安县| 庄浪县| 阿鲁科尔沁旗| 灵宝市| 社会| 西平县| 顺义区| 龙山县| 长寿区| 巴楚县| 长宁区| 罗源县| 玉山县| 青田县| 南昌县| 临清市| 隆回县|