【发布时间】:2012-01-20 02:24:36
【问题描述】:
我是spring MVC的新手,刚刚开始研究它。我想知道应用程序上下文(web-applicationcontext)和spring提供的上下文,即spring-servlet.xml是否相同或不同.
希望有人能给我一个更好的想法来解决这个困惑。
【问题讨论】:
标签: spring web-applications applicationcontext
我是spring MVC的新手,刚刚开始研究它。我想知道应用程序上下文(web-applicationcontext)和spring提供的上下文,即spring-servlet.xml是否相同或不同.
希望有人能给我一个更好的想法来解决这个困惑。
【问题讨论】:
标签: spring web-applications applicationcontext
应用程序上下文和 servlet 上下文之间的区别在于,应用程序上下文中指定的任何内容都可以在 servlet 上下文中引用,反之则不行。
也就是说,您可以在应用程序上下文级别指定通过 servlet 重用的组件,但是可以在此处指定仅特定于某个 servlet 的某些内容,以将它们与应用程序和其他 servlet 隔离。
如果您需要细粒度的控制,那就可以了。
【讨论】:
您可以将它们视为同一个文件。查看this answer了解更多详情。
【讨论】:
*-servlet.xml 提供的应用程序上下文是 WebApplicationContext,请参阅here 了解更多信息。根应用程序由 contextLoader 监听器创建。
引用 Spring 参考,
“在web MVC框架中,每个DispatcherServlet都有自己的WebApplicationContext,它继承了根WebApplicationContext中已经定义的所有bean。
WebApplicationContext 是普通 ApplicationContext 的扩展,它具有 Web 应用程序所需的一些额外功能。它与普通的 ApplicationContext 不同之处在于它能够解析主题(参见第 15.7 节,“使用主题”),并且它知道它与哪个 servlet 相关联(通过链接到 ServletContext)。 WebApplicationContext 绑定在 ServletContext 中,通过使用 RequestContextUtils 类上的静态方法,如果需要访问它,您可以随时查找 WebApplicationContext。"
您可以找到根应用程序上下文here的详细信息
【讨论】: