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
- spring boot 讀寫引數到sessionSpring BootSession
- boot.ini引數:PAE( 轉)boot
- postman 請求引數和 Spring Boot Controller 接受引數PostmanSpring BootController
- Spring Boot之自定義JSON轉換器Spring BootJSON
- Spring Boot實現通用的介面引數校驗Spring Boot
- 深入探討Spring Boot中的引數傳遞Spring Boot
- Spring中@InitBinder將請求引數轉換為各自的型別Spring型別
- Spring Boot 學習系列(11)—tomcat引數配置建Spring BootTomcat
- Spring Boot中實現輸入引數驗證教程Spring Boot
- Spring Boot統一異常處理以及引數校驗Spring Boot
- (七)Spring Boot Controller的請求引數獲取Spring BootController
- Scala - 隱式轉換和隱式引數
- Scala隱式轉換與隱式引數
- Spring Boot 使用 JSR303 實現引數驗證Spring BootJS
- Spring Boot中的 6 種API請求引數讀取方式Spring BootAPI
- Spring Cloud Spring Boot mybatis分散式微服務雲架構-hystrix引數詳解CloudSpring BootMyBatis分散式微服務架構
- javascript將引數轉換為數值程式碼詳解JavaScript
- 玩轉spring boot——websocketSpring BootWeb
- SpringMVC的引數繫結-日期格式轉換SpringMVC
- springmvc引數型別轉換三種方式SpringMVC型別
- spring-boot-route(一)Controller接收引數的幾種方式SpringbootController
- histb 引導核心 boot_cmd 引數含義boot
- 玩轉spring boot——war部署Spring Boot
- 玩轉spring boot——開篇Spring Boot
- 玩轉spring boot——properties配置Spring Boot
- 不能將引數 2 從“char [8]”轉換為“LPCWSTR”
- 利用 Spring Boot 中的 @ConfigurationProperties,優雅繫結配置引數Spring Boot
- Linux環境下Spring Boot專案內建Tomcat引數配置LinuxSpring BootTomcat
- AD模數轉換&DA數模轉換
- vi 替換命令引數
- Spring Boot專案,LocalDateTime引數在不同傳參方式下的報錯Spring BootLDA
- Spring Boot 新增JSP支援【轉】Spring BootJS
- 玩轉spring boot——ajax跨域Spring Boot跨域
- 玩轉spring boot——國際化Spring Boot
- 玩轉spring boot——結合dockerSpring BootDocker
- 玩轉spring boot——結合redisSpring BootRedis
- 玩轉spring boot——MVC應用Spring BootMVC