1. 程式人生 > >【報錯】BeanFactory not initialized or already closed

【報錯】BeanFactory not initialized or already closed

在網上查詢很久,很多人說是因為

錯誤寫法:ApplicationContext ctx = new ClassPathXmlApplicationContext();

時,沒有指定配置檔案,Spring例項化BeanFactory的時候是預設到classPath下面查詢名為applicationContext.xml的檔案的,但是呢,你又沒有指定,所以出現了這個錯誤。

這就是錯誤的原因,在括號寫上配置檔名就行了。

正確寫法:ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");

我使用的是springmvc框架:後來發現問題在於在不同的包結構下存在相同名字的controller。導致Spring例項化BeanFactory失敗。如果@Controller裡面的value你沒有設定的話,spring會按照你的class名稱去例項化屬於它的bean,當出現兩個相同的class名稱的時候就會報錯。所以我們寫程式的時候一定要避免相同名稱的controller。當然如果你一定要若干個相同名稱的controller。那麼在註解@Controller加上不同的value屬性。如:@Controller(value="controller01") 、@Controller(value="controller02")……