問題BeanFactory not initialized or already closed - call 'refresh' before access


問題BeanFactory not initialized or already closed - call 'refresh' before access
2016-08-23 14:22 8565人閱讀 評論(2) 收藏 舉報
版權聲明:本文為博主原創文章,未經博主允許不得轉載。
在網上查找很久,很多人說是因為
錯誤寫法: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")……


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM