簡體   English   中英

Spring MVC配置啟用

[英]Spring MVC configuration enable

我正在從頭開始建立一個項目,目前我正在使用java config配置Spring MVC 4.1.5 整個應用程序運行在tomcat gradle插件上。

有人可以解釋一下為什么我需要對DefaultServletHandlerConfigurer類進行以下調用才能使請求映射到我的控制器嗎?

@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
    configurer.enable();
}

沒有啟用它,我的所有請求都將被拒絕,並且服務器說沒有針對特定請求的映射。

我閱讀了Spring 文檔以查找答案,但是說明並沒有告訴我太多。

啟用轉發到“默認” Servlet的功能。 使用此方法時,DefaultServletHttpRequestHandler將嘗試自動檢測“默認” Servlet名稱。 另外,您可以通過enable(String)指定默認Servlet的名稱。

這是Spring MVC的部分文檔中很好的解釋在這里

這允許將DispatcherServlet映射到“ /”(從而覆蓋容器的默認Servlet的映射),同時仍允許容器的默認Servlet處理靜態資源請求。 它使用URL映射“ / **”配置DefaultServletHttpRequestHandler,並且相對於其他URL映射具有最低優先級。

該處理程序會將所有請求轉發到默認Servlet。 因此,保持所有其他URL HandlerMappings的順序最后是很重要的。 如果您使用這種情況,或者要設置自己的自定義HandlerMapping實例,請確保將其order屬性的值設置為小於DefaultServletHttpRequestHandler的Integer.MAX_VALUE的值。

該段代碼相當於通常定義為servletname-servlet.xml的Spring Web MVC特定組件文件中的xml行<mvc:default-servlet-handler/>

您必須使用該調用才能配置到Spring默認Servlet的轉發,如果您不這樣做,則服務器將嘗試使用其自己的Servlet處理,並且如您所解釋的,如果您沒有任何特定的定義,則它將贏得找不到您的請求的任何映射。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM