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

Spring + Web MVC:dispatcher-servlet.xml与applicationContext.xml(以及共享的安全性)

游乐池
2023-03-14
问题内容

什么是使用两个上下文正确的方式:dispatcher-servlet.xmlapplicationContext.xml?哪里去了?

我想编写一个部署在servlet容器中的相当典型的应用程序。它具有一些带有JSP视图的控制器。在后端也有一些平凡的逻辑。我真的需要两个环境吗?它们如何相互关联?我该如何决定放入哪个?

另外,我想对我的应用程序使用Spring-security。我可能想在Web控制器以及更深层中使用其功能(例如带注释的声明式安全性)。在这种情况下,应如何配置安全性才能正常工作?应该在其中一个文件(哪个?)中还是在两个文件中?


问题答案:

dispatcher-servlet.xml文件包含你对的所有配置Spring MVC。因此,在它,你会发现豆类,如ViewHandlerResolversConverterFactoriesInterceptors等等。所有这些bean都是Spring MVC框架的一部分,该框架构造了如何处理Web请求,并提供了有用的功能,例如数据绑定,视图解析和请求映射。

application-context.xml在使用Spring MVC或任何其他框架时,可以选择包含。这为你提供了一个可用于配置其他类型的Spring Bean的容器,这些类型的Spring Bean支持诸如数据持久性之类的事情。基本上,在此配置文件中,你可以获取Spring提供的所有其他功能。

这些配置文件在web.xml文件中配置,如下所示:

调度程序配置

<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>WEB-INF/spring/servlet-context.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

应用配置

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/spring/application-context.xml</param-value>
</context-param>

<!-- Creates the Spring Container shared by all Servlets and Filters -->
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

要配置控制器,请给它们加上注释,@Controller 然后在dispatcher-context.xml文件中添加以下内容:

<mvc:annotation-driven/>
<context:component-scan base-package="package.with.controllers.**" />


 类似资料:
  • 本文向大家介绍Spring Framework中applicationContext.xml和spring-servlet.xml之间的区别,包括了Spring Framework中applicationContext.xml和spring-servlet.xml之间的区别的使用技巧和注意事项,需要的朋友参考一下 Applicationcontext.xml-这是标准的Spring上下文文件,其中

  • 问题内容: 和在中相关吗? 声明的属性文件是否可用于? 在相关说明中,为什么我根本不需要*-servlet.xml?为什么一个人不够? 问题答案: 使你可以在父子层次结构中定义多个上下文。 的用于“根web应用上下文”,即与该web应用程序相关联的上下文定义了豆。 该(或任何你称呼它)定义了一个servlet的应用程序上下文中的豆。一个Web应用程序中可以有许多这样的应用程序,每个Spring S

  • 我有两个ruby on rails应用程序,分别位于两个不同的域上(例如和)

  • 我试图使CORS与Spring Security很好地配合,但它并不符合要求。我进行了本文所述的更改,更改中的这一行使我的应用程序可以使用POST和GET请求(临时公开控制器方法,以便测试CORS): 前面: 后面: 不幸的是,允许通过AJAX进行Spring Security登录的以下URL没有响应:。我正在将AJAX请求从发送到。 当尝试访问时,我在Chrome中获得了选项预飞行请求,AJAX

  • 我想在SpringMVC应用程序中保存一个用户对列表。任何用户都可以访问和更改列表(可以删除对,也可以添加新的对)。我不想将此列表保存为数据库中的一个表,因为我希望在web应用程序的执行过程中会形成许多对用户,并且应该经常执行此过程。我决定这个列表是一个单例Springbean(例如,名为ListHolder)的字段,它连接到不同的控制器。由于我是Spring的新手,我担心的是当很多用户同时使用该

  • 我有使用令牌保护的服务,如下例所示:https://stackoverflow.com/A/10864088/278279 问题是当我添加文件上传时,筛选器找不到请求中的令牌(我认为原因是请求有多部分类型) 我正在使用CommonsMultipartResolver 和简单的spring控制器来接收文件 为了解决我修改的问题,如果请求具有多部分类型,则令牌检索: