運行控制器中的方法我有一個控制器類:如何從外部控制器
@Controller
public class MyController {
@AutoWired
Service myservice
@RenderMapping
public display(){
//do work with myservice
}
}
我要調用從外部類中的方法顯示(),但我是一個空指針異常。
這裏是我如何從外部調用類的顯示方法:
new MyController.display()
但實例爲MyService被設置爲null。
如何調用MyController.display()並確保myservice的實例未設置爲null?
我認爲問題是因爲我正在創建控制器的新實例,該服務然後不自動裝配?但是因爲Spring控制器是單例的,也許我可以訪問控制器的當前實例嗎?
更新:
的原因,我想這是我加入一個配置選項來確定哪個控制器顯示方法應該實現。也許我應該使用超級控制器來確定應該實現哪個控制器?
你需要使用Spring上下文來獲取這樣myController的所有的依賴注入。如果您使用new創建實例,則彈簧的全部點將被取消。還要檢查myservice的setters和getters是否已經到位 –
你不能手動創建這個類的實例,它是由spring管理的,有一種骯髒的方式來實現這一點,但不建議這樣做。充其量你告訴我們,你的用例是什麼,那麼我們可能會幫助找出一個解決方案 – Jaiwo99
@ Jaiwo99請參閱更新 –