【发布时间】:2013-11-06 07:47:37
【问题描述】:
我是 Spring 新手,我正在创建一个简单的 Web 应用程序。我一直在阅读 Spring MVC 中的上下文。
我正在为 Eclipse 使用 STS 插件。我创建了一个 使用该插件的 Spring MVC 项目。
现在我在项目中有三个xml文档,web.xml、root-context.xml和servlet-context.xml。这些是 STS 为我创建的。
在 web.xml 中,调度程序 servlet 指向 servlet-context.xml,我理解调度程序 servlet 的工作是创建一个知道如何解析视图的 Web 应用程序上下文,并且是控制器 bean 存在的地方. 我的理解正确吗?如果是这样,这个上下文还完成了哪些其他工作?
现在,有一个名为 root-context.xml 的文件,它对我的项目默认包进行了组件扫描。我的理解是这个上下文需要有许多 servlet 可能使用的全局 bean。我的理解正确吗?这还有什么作用?使用此文件创建什么样的上下文?
现在,我在项目中更进一步,我有几个 *-context.xml 文件(dao-context.xml、security-context.xml 等),这些文件使用 contextLoaderListner(在 web.xml 中)加载.这是一个好主意吗?还是应该将所有内容都放入 servlet-context.xml?我认为拥有不同的上下文是一个好主意,因为它提供了关注点分离。注释?另外,从这些 *-context.xml 文件中创建了什么样的上下文?这些文件的正确文件夹位置是什么?
Web.xml 用于 servlet 容器,如 tomcat 等,项目中的所有其他 xml 文件用于 spring 容器。那是对的吗?所有这些文件都分开以提供关注点分离?
当前场景中存在多少个应用上下文和Web应用上下文?
为什么有人需要多个调度器 servlet?
为什么有人需要多个应用程序上下文?
想法?注释?更正?最佳实践?
【问题讨论】:
标签: spring tomcat spring-mvc