当前位置: 首页 > 面试题库 >

Spring-MVC:什么是“context”和“namespace”?

景凌
2023-03-14
问题内容

从XmlWebApplicationContext javadoc:

默认情况下,配置将从“ /WEB-INF/applicationContext.xml”获取根上下文,从“ /WEB-INF/test-servlet.xml”获取具有名称空间“ test-servlet”的上下文(例如Servlet名称为“ test”的DispatcherServlet实例)。

Spring上下文是什么意思?

根上下文是什么?还有其他哪些Spring上下文?

什么是命名空间?

一些后续问题:

  1. 什么是Spring ApplicationContext-它是否包含保存在配置XML文件中定义的bean的“东西”?

  2. 查看ContextLoaderListener的代码,看起来它加载了在配置XML文件中定义的数据。但是我的Spring Web应用程序可以在不定义此侦听器或任何其他侦听器的情况下工作。怎么会这样?

  3. 在什么情况下,拥有多个Spring的DispatcherServlet实例有意义吗?

  4. 根上下文(来自applicationContext.xml的数据)是否适用于DispatcherServlet的每个实例,而其他上下文(例如,来自test-servlet.xml的数据)仅适用于相关的DispatcherServlet(即test)?


问题答案:

“ Spring上下文” = Spring ApplicationContext。

就Web应用程序而言,“根上下文”是指Web应用程序加载和使用的主要上下文。通常,你将使用ContextLoaderListener启动根上下文。

根上下文实际上不是上下文的“一种”。它只是上下文所扮演的角色。Web应用程序中有一个根上下文。其他上下文不是根上下文。它们通常是根上下文的子级。

这里的命名空间是指Spring的DispatcherServlet实例的范围。就是说,如果你在web.xml中将servlet命名为“ test”,那么按照惯例,Spring将查找名为“ test-servlet.xml”的文件用作该调度程序的上下文。顺便说一句,为分派器创建的每个此类上下文都将成为根上下文的子级。

编辑:要回答你的新问题:

  1. 跟随我回答的第一行中的链接以了解ApplicationContext。如果你有未在此处回答的问题,建议你发布一个新的SO问题。
  2. 根上下文是可选的。如果你没有定义ContextLoaderListener,那么你就没有根上下文。当你使用DispatcherServlet时,它将启动自己的ApplicationContext,并从那里获取所需的bean。
  3. 我不知道一个人顶着脑袋。我想如果你的应用程序中某些URL资源之间需要完全不同的配置,那可能会促使你这样做。
  4. 是。为了用适当的术语表述,根上下文是为DispatcherServlet启动的任何上下文的父上下文。可以通过子上下文访问父上下文中的Bean,但事实并非如此。


 类似资料:
  • 主要内容:Spring MVC 的常用组件,Spring MVC 的特点Spring MVC(全称 Spring Web MVC)是 Spring 框架提供的一款基于 MVC 模式的轻量级 Web 开发框架,是 Spring 为表示层(UI)开发提供的一整套完备的解决方案。 注:三层架构分为表示层(UI)、业务逻辑层(BLL)、数据访问层(DAL),表示层则包含前台页面和后台 Servlet,详情请参看《MVC 模式》一节。 Spring MVC 使用 MVC 架构模

  • 本文向大家介绍spring mvc 和 struts 的区别是什么?相关面试题,主要包含被问及spring mvc 和 struts 的区别是什么?时的应答技巧和注意事项,需要的朋友参考一下 拦截级别:struts2 是类级别的拦截;spring mvc 是方法级别的拦截。 数据独立性:spring mvc 的方法之间基本上独立的,独享 request 和 response 数据,请求数据通过参数

  • 问题内容: 我有一个ear包,其中包含一个带普通对象的jar和两个我想使用普通jar的战争Web应用程序。我已将配置设置为通过ContextLoaderListener和Webapp上下文分别为DispatcherServlet使用应用程序范围的上下文。 我的演示应用程序的设置大致如下 包含applicationContext.xml和beanRefContext.xml,它们应该是应用程序(耳朵

  • 问题内容: Spring MVC 的目的和用途是什么? 问题答案: 引用模型对象的属性(MVC中的M;),所以我们假设有一个表单,该表单带有一个称为“ Person”的表单支持对象。然后,你可以让Spring MVC通过使用批注将此对象提供给Controller方法: 另一方面,注释用于定义应作为模型一部分的对象。因此,如果要在模型中引用Person对象,可以使用以下方法: 这个带注释的方法将允许

  • 本文向大家介绍Spring Boot、Spring MVC 和 Spring 有什么区别?相关面试题,主要包含被问及Spring Boot、Spring MVC 和 Spring 有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 SpringFramework SpringFramework 最重要的特征是依赖注入。所有 SpringModules 不是依赖注入就是 IOC 控制反转。 当我

  • 主要内容:MVC模式 VS 三层架构,MVC 的工作流程,MVC 的优点,MVC 的不足MVC 模式,全称为 Model-View-Controller(模型-视图-控制器)模式,它是一种软件架构模式,其目标是将软件的用户界面(即前台页面)和业务逻辑分离,使代码具有更高的可扩展性、可复用性、可维护性以及灵活性。 通常情况下,一个完整的 Java Web 应用程序,其结构如下图所示。 图1:Java Web 应用的结构  MVC 模式将应用程序划分成模型(Model)、视图(View)