项目场景:
整合SpringMVC遇到的问题问题描述:
java.lang.IllegalStateException: BeanFactory not initialized or already closed - call ‘refresh’ before accessing beans via the ApplicationContext
原因分析:
首先分析web.xml文件,确认无误<!-- 通过监听,去加载spring的核心配置文件-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<!--配置读取spring文件的路径-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
2,分析Controller和Service使用注解,spring初始化bean对象是否出错;
1)xml的bean的id 有重复;
2)如果是注解配置:可能是注解的名称有重复:
只需要将重复的bean 的id和重复的注解改了就行了;
3,最后发现是资源过滤问题
原因是resouces下面的资源 加载不到classes下面去。
解决方案:
在pom.xml文件里配置
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.json</include>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
继续加油学习!!!