2010-03-22 43 views
0

我是新的彈簧,我目前在控制器類中使用ClassPathXmlApplicationContextgetBean。這是我正在構建的一個小示例應用程序 。但是,我試圖做的是這個 ClassPathXmlApplicationContext 移動到一個新的類,並保持它在應用程序的靜態。所以我可以調用 新類來調用構造函數中的DAO。 我嘗試了一些東西,但我總是得到NestedServletException錯誤。使用ClassPathXmlApplicationContext創建彈簧數據連接類

請給我建議的方式來寫我的數據連接的新類,將 在我的應用程序保持在相同的狀態,即我可以叫每個 控制器類內部而不是在構造函數創建一個DAO對象每次。

得到任何幫助,建議。

感謝 沃克

回答

2

當我從異常名假設,你所談論的Web應用程序。在這種情況下,您不需要創建應用程序上下文。 Spring有其內置的機制。例如,使用監聽器(在web.xml

<listener> 
    <listener-class> 
     org.springframework.web.context.ContextLoaderListener 
    </listener-class> 
</listener> 

所以所有的豆子被彈簧得到自動有線(如,當然,正確配置)。

您仍然可以通過執行ApplicationContextAware或呼號WebApplicationContextUtils.getRequiredWebApplicationContext()來獲取上下文的位置,但在一般情況下您不需要這樣做。

您不應該手動使用應用程序上下文。相反,spring會使用dependency injection來連接你的應用程序,並且你的所有對象(控制器,daos等)都有它們的依賴關係,而不需要在某些情況下爲它們「伸手」。

+0

感謝Bozho的快速回復。我認爲這將解決我的問題。我會給它一個鏡頭。謝謝 :) – Walker 2010-03-22 18:44:19