Autowired抱空指標異常解決方案

2022-02-23 17:32:09 字數 612 閱讀 3494

先給總結,再給例項

前提:類b裡用了@autowired註解,類a和類b都加了@component或者其他形式如@service這樣都註解。

結果:如果類a 想訪問類b,採用new b()的方式,則在類b裡沒法訪問bean物件(也就是加了@autowired的物件),會報空指標;

如果在類a中注入類b,則在類b裡可以訪問注入的bean物件

原因:@autowired注入即將物件注入到spring的ioc容器內,而new出來的例項脫離了spring的管理,兩個物件不在乙個管理者管理下,也即無法聯絡起來

舉個最簡單的例子: 

controller呼叫service,

@controller

public

class

testcontroller

}

@service

public

class testserviceimpl implements

testservice

}

看結果,一目了然

空指標異常記錄

空指標異常是指 當應用程式試圖在需要物件的地方使用 null 時,丟擲該異常。也就是你沒有建立這個物件,你卻呼叫他,或者呼叫他的方法,或者訪問 修改他的屬性,這時會丟擲乙個空指標異常。我這兩天遇到的問題是,我傳入乙個為null的屬性,或者沒有傳入必要屬性,就會在return的地方報乙個空指標異常。注...

Android context空指標異常

fragment中的 context 是null public class placeholderfragment extends fragment 這樣定義的context是null。當然咯,我實際 不是這樣寫的,可是這個意思。假設是在activity中就不會是空。在fragment中就是null...

Autowired 的成員變數,報空指標錯誤

比如 你 class loginservice 裡面的userdao這裡報空指標錯誤,其中的乙個原因是你沒有給userdao這個成員變數寫set方法,這樣spring就沒有辦法幫你自動的裝載。我剛發現不是上面說的這個原因。而是我在另外乙個地方使用了loginservice,比如 testaction...