【问题标题】:Spring MVC two configurations?Spring MVC 两种配置?
【发布时间】:2014-01-19 14:51:45
【问题描述】:
我创建了一个基于 maven 的简单 spring-web-mvc 项目。该示例包括两个配置文件。一个在src/main/resources/spring/application-config.xml
src / main / webapp / WEB-INF / mvc-config.xml 中的第二个
这个配置正常吗?我认为这只是用于 spring commons 的 mvc-config.xml 和 application-config.xml 中的配置拆分基础 mvc 东西还是?
【问题讨论】:
标签:
spring
maven
spring-mvc
【解决方案1】:
对于 Web 应用程序,这是相当正常的 - 尽管这两个文件的命名约定通常是 dispatcher-servlet.xml 和 applicationContext.xml。
dispatcher-servlet.xml(或您的问题中的mvc-config.xml)是 Web 应用程序上下文的配置文件,包含 Web 特定的 bean 和 Spring MVC 的配置。它在应用程序启动时由DispatcherServlet 加载。
applicationContext.xml(或您的问题中的application-config.xml)是主要 Spring 应用程序上下文的配置文件,包含非 Web 业务 bean(通常是服务、DAO 等)。这个文件经常被拆分成片段——一个片段包含应用程序中每个逻辑层的 bean。该文件通常由web.xml 中定义的ContextLoaderListener 加载。
Spring 自动将主应用程序上下文设置为 Web 应用程序上下文的父级。这确保了 Web 组件(例如控制器)可以访问应用程序上下文中的业务 bean。但是,业务 bean 无法在 Web 应用程序上下文中看到 bean。