昨天在項目更新Spring Boot2.0的過程中,發現如下圖的情況
RequestMapping("/test")可以跟/test比對,但是比對任何不了帶字尾的請求。
我們知道Spring MVC是預設支援比對字尾的,如/test.json,/test.html,哪怕是/test.55都是可以比對。
鑒于Spring Boot2.0是比對Spring Framework 5.0的,我不确定是兩者誰做了控制,是以我仔細看了相關文檔和源碼。
一、Spring的源碼
我們都知道,請求的控制器是
org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport。我分别對比了4.1.3和5.0.4的控制此部分的源碼。
上面是4.1.3的源碼,下面是5.0.4的源碼,兩者基本一緻,可是在debug時的接口卻不一樣,suffixPatternMatch 一個是null,一個是false,那麼問題出在哪兒呢,我們來看下Spring Boot的文檔。
二、Spring Boot2.0文檔
這部分是Spring Boot對于請求路徑比對的說明,預設情況下&