一般来说,Spring 的DispatcherServlet负责 REST 服务。它的 Web 应用程序上下文包含控制器、视图解析器、处理程序映射等。
不属于 Web 的应用程序逻辑,即服务、存储库、数据源等,通常放置在一个(或多个)根应用程序上下文中。ContextLoaderListener
通过在web.xml文件中注册 a 将其导入应用程序,然后进行contextConfigLocation
相应的配置。如果使用 Spring 安全,则在此处添加安全应用程序上下文。
例子:
<web-app ...>
<!-- Enables Spring root application context-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- One (or more) root application contexts -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/rootApplicationContext.xml</param-value>
</context-param>
<!-- Servlet declaration. Each servlet has is its own web application context -->
<servlet>
<servlet-name>example</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>example</servlet-name>
<url-pattern>/example/*</url-pattern>
</servlet-mapping>
</web-app>
此设置允许 Web 应用程序上下文继承在根应用程序上下文中声明的任何 bean。
请注意,按照惯例,用于特定 servlet 的 Web 应用程序上下文位于/WEB-INF/[servlet-name]-servlet.xml中,即上面示例的/WEB-INF/example-servlet.xml。