我在使用ContextLoaderListener在我的web.xml中加载多个上下文时遇到了问题
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
WEB-INF/dao-context.xml
WEB-INF/service-context.xml
WEB-INF/security-context.xml
</param-value>
</context-param>
<filter>
<filter-name>jsonpCallbackFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>jsonpCallbackFilter</filter-name>
<url-pattern>*.json</url-pattern>
</filter-mapping>
过滤器一直给我一个“没有名为'jsonpCallbackFilter'的bean被定义”,类似于this question。如果我将所有配置放在dispatcher-servlet.xml中,并且由于某种原因,另一个问题的解决方案对我不起作用,则不会给我错误。
我目前的解决方案是导入调度程序-servlet 2中的所有内容:
<import resource="dao-context.xml" />
<import resource="service-context.xml" />
有人知道为什么会这样,上面没有?是O.K.通过servlet.xml导入它们而只留下web.xml?我正在使用IntelliJ IDEA。
答案 0 :(得分:0)
Spring处理application-context.xml
和*-servlet.xml
文件的方式有所不同。
application-context.xml
用于常规配置,例如dataSource,annotationDriven等
*-servlet.xml
用于配置您的servlet,例如视图,模板,例如jsp。
注意:*-servlet.xml
中的bean可以引用application-context.xml
中的bean,但不能引用其他方式。