Spring Boot 引數轉換
在 Spring MVC 中,使用註解 @RequestMapping
修飾控制器時,其所配置的內容,會在工程的啟動階段儲存到處理器對映(HandlerMapping)機制中,當請求連線被攔截後,HandlerMapping
進行匹配,會將對應的處理器和攔截器儲存到 HandlerExecutionChain
物件中,並返回給 DispatcherServlet
執行。
處理器中包含了控制器,在執行控制器中匹配的方法前,需要先將請求報文中的引數轉換為控制器所需要的引數。
-
不使用任何註解,控制器的引數名稱需要和請求連結中的引數名稱保持一致,如此引數可以正常傳遞,並且控制器的引數預設是可以為空的,所以請求連結中的引數可以是預設的。
-
當前後端的引數名稱不一致時,可以使用
@RequestParam
註解將兩者對映起來,並且預設引數是非空的,但是可以使用註解中的required
屬性修改引數的必要性。 -
如果控制器的引數是陣列,那麼請求連結中的相應引數中的元素可以直接使用逗號分隔,如
http://127.0.0.1/testArray?value=1,2,3
。 -
使用
@RequestBody
註解修飾控制器的引數,從而可以獲取請求報文體中的 JSON 引數。 -
使用
@PathVariable
註解獲取請求連結路徑中的引數,這個需要修飾控制器方法的註解使用{<引數名稱>}
佔位符表明引數的位置和名稱。 -
對於日期和數字,可以使用
@DateTimeFormat
和@NumberFormat
進行修飾,從而指定控制器引數的格式。 -
如果需要,可以自定義引數轉換規則。
如同使用
@RequestBody
修飾了引數的控制器,處理器會呼叫HttpMessageConverter
介面中宣告的方法對請求體資訊進行轉換。Spring MVC 中宣告瞭三個介面來實現各種引數的轉換,分別如下:
- Converter,普通轉換器,可以轉換字串,數字等簡單型別的引數
- Formatter,格式化轉換器,可以格式化日期,數字等引數
- GenericConverter,陣列轉換器,可以將請求中的引數轉換為陣列
在 Spring Boot 中,自動配置類
WebMvcAutoConfiguration
中的WebMvcAutoConfigurationAdapter
內部類,會自動將上面三種型別的 Bean 註冊到服務類中。所以,只要實現上面的幾個介面,就可以自定義自己的引數轉換器。
相關文章
- Spring Boot 引數校驗Spring Boot
- postman 請求引數和 Spring Boot Controller 接受引數PostmanSpring BootController
- spring boot 讀寫引數到sessionSpring BootSession
- Spring Boot之自定義JSON轉換器Spring BootJSON
- Spring中@InitBinder將請求引數轉換為各自的型別Spring型別
- Spring Boot 學習系列(11)—tomcat引數配置建Spring BootTomcat
- Spring Boot實現通用的介面引數校驗Spring Boot
- 深入探討Spring Boot中的引數傳遞Spring Boot
- (七)Spring Boot Controller的請求引數獲取Spring BootController
- Spring Boot 使用 JSR303 實現引數驗證Spring BootJS
- Spring Boot中實現輸入引數驗證教程Spring Boot
- SpringMVC的引數繫結-日期格式轉換SpringMVC
- spring-boot-route(一)Controller接收引數的幾種方式SpringbootController
- Spring Boot統一異常處理以及引數校驗Spring Boot
- 利用 Spring Boot 中的 @ConfigurationProperties,優雅繫結配置引數Spring Boot
- Spring Cloud Spring Boot mybatis分散式微服務雲架構-hystrix引數詳解CloudSpring BootMyBatis分散式微服務架構
- Spring Boot中的 6 種API請求引數讀取方式Spring BootAPI
- AD模數轉換&DA數模轉換
- Spring Boot專案,LocalDateTime引數在不同傳參方式下的報錯Spring BootLDA
- spring-boot 使用hibernate validation對引數進行優雅的校驗Springboot
- JS實現JSON物件與URL引數的相互轉換JSON物件
- Go專案實戰—引數繫結,型別轉換Go型別
- Spring Boot 學習資料 (轉載)Spring Boot
- Spring型別轉換(Converter)Spring型別
- histb 引導核心 boot_cmd 引數含義boot
- python json格式轉url引數&分割, url引數轉json格式PythonJSON
- Spring Boot:Spring Boot配置MybatisSpring BootMyBatis
- Spring Boot:Spring Boot配置SwaggerSpring BootSwagger
- Spring MVC 中 HttpMessageConverter 轉換器SpringMVCHTTP
- 測試開發專題:如何在spring-boot中進行引數校驗Springboot
- 說說SpringMVC從http流到Controller介面引數的轉換過程SpringMVCHTTPController
- Linux 引數代換 命令 xargsLinux
- C技巧:結構體引數轉成不定引數結構體
- Vue + Spring Boot——axios使用GET以引數的方式傳遞物件到SpringMVC解決方案VueSpring BootiOS物件SpringMVC
- spring、spring MVC、spring BootMVCSpring Boot
- Spring Boot系列十九 Spring boot整合 swaggerSpring BootSwagger
- Spring Boot 參考指南(Spring Boot文件)Spring Boot
- Spring Boot 2.0(八):Spring Boot 整合 MemcachedSpring Boot