問(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的專欄