SpringBoot配置攔截器空指針異常

問(wèn)題描述

攔截器中,@AutoWaired一個(gè)service,運(yùn)行的時(shí)候發(fā)現(xiàn)該service對(duì)象為空


有問(wèn)題的.png

對(duì)應(yīng)的配置


配置.png

嘗試過(guò):

在攔截器中實(shí)現(xiàn) ApplicationContextAware,獲取ApplicationContext,然后手動(dòng)獲取bean

8F8C9B8C-3B03-4936-96AB-74E362F8A6EE.png

結(jié)果,對(duì)象還是為空

嘗試在類上或者方法上加入注解 @DependsOn(redisService)

F9E2B227-A865-4FEC-9A4D-CAD723A6260F.png

加載類上啟動(dòng)就報(bào)錯(cuò)


0AA7B0EB-BF76-4148-9F1F-13FCE0E8B3BF.png

通過(guò)request獲取ServletContext,然后再獲取bean

還是找不到bean.png

最終,查閱博客找到一個(gè)解決方案

在添加攔截器的時(shí)候,要自動(dòng)裝配,不要直接new,如圖

DA5FA230-E2D0-47E6-8D34-0424C8419378.png

最終

7F837293-4039-449E-B624-98D613185E0A.png

我對(duì)于這次問(wèn)題的解決的理解是

自動(dòng)裝配解決的:在這個(gè)配置中,幫我去new一個(gè)requestInterceptor的時(shí)候,檢查需要依賴redisService,然后它幫我new了一個(gè)redisService裝配到requestInterceptor中去,才能new出一個(gè)requestInterceptor.
自動(dòng)注入相關(guān)知識(shí)參考 Spring IOC和DI 的理解

在此多謝博客,dzl84394的專欄

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容