Spring MVC DispatcherServlet 配置

衣舞晨風發表於2016-08-26

DispatcherServlet在web.xml中的配置:

    <servlet>
        <servlet-name>servletDemo</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>servletDemo</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

load-on-startup:表示啟動容器時初始化該Servlet;
url-pattern:表示哪些請求交給Spring Web MVC處理, “/” 是用來定義預設servlet對映的。也可以如“*.html”表示攔截所有以html為副檔名的請求。

該DispatcherServlet預設使用WebApplicationContext作為上下文,Spring預設配置檔案為“/WEB-INF/[servlet名字]-servlet.xml”。

DispatcherServlet也可以配置自己的初始化引數,覆蓋預設配置:
摘自Spring Reference

引數 描述
contextClass 實現WebApplicationContext介面的類,當前的servlet用它來建立上下文。如果這個引數沒有指定, 預設使用XmlWebApplicationContext。
contextConfigLocation 傳給上下文例項(由contextClass指定)的字串,用來指定上下文的位置。這個字串可以被分成多個字串(使用逗號作為分隔符) 來支援多個上下文(在多上下文的情況下,如果同一個bean被定義兩次,後面一個優先)。
namespace WebApplicationContext名稱空間。預設值是[server-name]-servlet。

因此我們可以通過新增初始化引數:

    <servlet>
        <servlet-name>servletDemo</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-servlet-config.xml</param-value>
        </init-param>
    </servlet>

如果使用如上配置,Spring Web MVC框架將載入“classpath:spring-servlet-config.xml”來進行初始化上下文而不是“/WEB-INF/[servlet名字]-servlet.xml”。

作者:jiankunking 出處:http://blog.csdn.net/jiankunking

相關文章