2012-07-10 231 views
0

最近我在嘗試啓動現有服務器時遇到了問題。似乎字段ABCManager沒有被春豆廠自動裝配。這已添加 - 「context:anotation-config」到配置文件中。 我檢查了代碼更改版本,ABCManager只有一個私有構造函數方法(在它有一個getInstance方法之前)。這很重要嗎? Spring會使用私有構造函數爲我獲取一個實例,或者這就是爲什麼我有一個NPE? 如果這不是,我應該檢查什麼?爲什麼我的@autowired不起作用

+0

你可以添加你的應用程序配置和例外,你得到併發布在你的問題? – Xaerxess 2012-07-10 16:18:09

+0

調試完這個問題後,我終於明白了那裏發生了什麼。這仍然是一個配置問題,一些依賴bean在* .xml中沒有配置。 – Sarstime 2012-07-16 10:16:31

回答

0

您是否註記了課程? 類必須@Component@Service@Repository

+0

不,這不是問題 – Sarstime 2012-07-16 10:13:13

0

由於這一直是使用一個靜態方法來得到一個實例進行註釋,春天默認不知道這一點。 你將不得不在bean減速中指定你的靜態方法。

<bean id="exampleBean" class="examples.ExampleBean2" factory-method="createInstance"/> 

您的工廠方法將是您用於實例化此bean的靜態方法。

+0

不,我調試代碼,發現即使你沒有提供公共構造函數,spring仍然爲我生成一個實例。所以如果你不提供工廠方法,那也沒關係。 – Sarstime 2012-07-16 10:14:42