先給總結,再給例項
前提:類b裡用了@autowired註解,類a和類b都加了@component或者其他形式如@service這樣都註解。
結果:如果類a 想訪問類b,採用new b()的方式,則在類b裡沒法訪問bean物件(也就是加了@autowired的物件),會報空指標;
如果在類a中注入類b,則在類b裡可以訪問注入的bean物件
原因:@autowired注入即將物件注入到spring的ioc容器內,而new出來的例項脫離了spring的管理,兩個物件不在乙個管理者管理下,也即無法聯絡起來
舉個最簡單的例子:
controller呼叫service,
@controllerpublic
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...