Spring Service 注入失敗,空指標

2021-09-08 20:19:18 字數 1299 閱讀 6702

service

層的類都有用

@service

標識,但報空指標,注入失敗,很可能是因為

spring

的配置和

springmvc

的配置檔案配置錯誤

,導致容器衝突了。

spring

和springmvc

整合後,專案會有

2個容器,乙個是

spring

容器,乙個是

springmvc容器

spring

容器是父容器,

springmvc

容器是spring

容器的子容器。

spring

容器初始化後,

springmvc

再進行初始化,並將

spring

容器作為它的父容器。

子容器能夠訪問父容器的

bean

,而反之不行。

兩個容器的關係大概就是上述文字所表達的。

如果spring

的配置檔案中

此路徑和

springmvc

配置檔案中

路徑一致,或者是父容器初始化的路徑包括了子容器。

那麼,當

springmvc

容器初始化時,如果發現有相同的類,會將新初始化的例項覆蓋

spring

容器中已經存在的例項,這可能會導致注入失敗,空指標的問題。

假如我們的

controller

裡面引用了

service

,並且spring

的配置檔案初始化時掃瞄了全部的例項包括

springmvc

的controller

並初始化,接著,

springmvc

容器初始化時,就會將

spring

容器中的

controller

例項覆蓋掉。這個時候就會出錯了,新的

controller

例項中的

service

就會出現找不到例項的情況。

所以解決方法是,

2個容器掃瞄的包必須相互區分,互不干擾。

spring

容器掃瞄非

controller

的例項,而

springmvc

容器掃瞄

controller

的例項就行。

SQL注入 報錯注入

乙個帶get引數的 並且不從資料庫返回資料,但存在報錯資訊 檢視字段情況 報錯注入語句格式 and 1 2 union select1,2,3 from select count concat floor rand 0 2 sql語句 a from information schema.tables...

DLL注入 APC注入

apc注入的原理是利用當執行緒被喚醒時 apc中的註冊函式會被執行的機制,並以此去執行我們的 dll載入 進而完成 dll注入的目的,其具體流程如下 1 當exe 裡某個執行緒執行到 sleepex 或者waitforsingleobjectex 時,系統就會產生乙個軟中斷 或者是messagebo...

DLL注入 APC注入

apc注入 apc注入的原理是利用當執行緒被喚醒時apc中的註冊函式會被執行的機制,並以此去執行我們的dll載入 進而完成dll注入的目的,其具體流程如下 1 當exe裡某個執行緒執行到sleepex 或者waitforsingleobjectex 時,系統就會產生乙個軟中斷 或者是messageb...