整理java.lang.IllegalStateException: BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the ApplicationContext的出现问题以及各种解决方案
解决方案:
(1)
BeanFactory没有实例化或者已经关闭了,其实产生错误的原因很简单,在写:
ApplicationContext ctx = new ClassPathXmlApplicationContext();
时,没有指定配置文件,Spring实例化BeanFactory的时候是默认到classPath下面查找名为applicationContext.xml的文件的,但是呢,你又没有指定,所以出现了这个错误。
这就是错误的原因,在括号写上配置文件名就行了。
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
这样的话就不会出现这样的错误了。
(2)
原因:spring初始化bean对象出错;1)xml的bean的id 有重复;
2)如果是注解配置:可能是注解的名称有重复:
只需要将重复的bean 的id和重复的注解改了就行了;
(3)查看@Controller或者@service注入的接口是否有一样的或者注入的接口是引入别的文件的而导致报错(本人项目出错原因)