Spring MVC中的不同上下文如何工作?

时间:2015-07-14 07:59:09

标签: java spring configuration web.xml

我的Spring MVC Webapp有以下配置。我想在概念上知道servlet-context.xml中的contextConfigLocation(它是appServlet的conf)与其他文件安全性,tile之间的区别是什么...我不明白它是如何工作的,因为如果我放应用程序在servlet-context中的tiles-context.xml配置,在其他情况下为no,但安全性正常。这个文件中的bean也不在appServlet容器中?是否有不止一个上下文?

<!-- DispatcherServlet Conf - Processes application requests -->
<servlet>
    <servlet-name>appServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:servlet-context.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>appServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>


<!-- Spring configuration files in XML -->
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        classpath:security-context.xml
        classpath:tiles-context.xml
        ...
    </param-value>
</context-param>

1 个答案:

答案 0 :(得分:1)

看看

Spring root application context and servlet context confusion

What is the difference between ApplicationContext and WebApplicationContext in Spring MVC?

关于根上下文和servlet上下文的区别。

您可以使用以下配置定义多个servlet上下文

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

当url模式为/ rest / *时,可以访问上面的上下文。这是在spring上配置多个单独的上下文的方式。