Controller接收參數的經常使用方式整體能夠分爲三類。第一類是Get請求經過拼接url進行傳遞,第二類是Post請求經過請求體進行傳遞,第三類是經過請求頭部進行參數傳遞。java
1 @PathVariable接收參數
請求方式:localhost:7001/param/123git
請求示例:github
代碼示例:redis
@GetMapping("{id}") public String getPathVariable(@PathVariable String id){ return "id="+id; }
2 @RequestParam接收參數
使用這個註解須要注意兩個點,一是加了這個參數後則請求中必須傳遞這個參數,二是@RequestParam這個註解能夠指定名字,請求參數必須和指定的這個名字相同,若是不指定,則默認爲具體參數名。spring
請求方式:localhost:7001/param/getParam?myId=18數據庫
請求示例:緩存
代碼示例:微信
@GetMapping("getParam") public String getRequestParam(@RequestParam("myId") String id){ return "id="+id; }
3 無註解傳參
這種方式和2對比,最大的區別就是這個參數不是必傳的,請求路徑上能夠不傳遞。mybatis
請求方式:localhost:7001/param/getString?id=18app
請求示例:
代碼示例:
@GetMapping("getString") public String getString(String id){ return "id="+id; }
4 HttpServletRequest接收參數
請求方式:localhost:7001/param/getRequest?id=18
請求示例:
代碼示例:
@GetMapping("getRequest") public String getRequest(HttpServletRequest request){ String id = request.getParameter("id"); return "id="+id; }
5 @RequestBody接收請求體參數
這種方式通常用來傳遞實體對象,加了這個註解後,參數也是必傳的。
請求方式:{"id":18}
請求示例:
代碼示例:
@PostMapping("getBody") public String getBody(@RequestBody String id){ return "id="+id; }
6 @RequestHeader接收請求頭參數
請求示例:
代碼示例:
@PostMapping("getHeader") public String getHeader(@RequestHeader String id){ return "id="+id; }
本文示例代碼已上傳至github,點個star
支持一下!
Spring Boot系列教程目錄
spring-boot-route(一)Controller接收參數的幾種方式
spring-boot-route(二)讀取配置文件的幾種方式
spring-boot-route(五)整合Swagger生成接口文檔
spring-boot-route(六)整合JApiDocs生成接口文檔
spring-boot-route(七)整合jdbcTemplate操做數據庫
spring-boot-route(八)整合mybatis操做數據庫
spring-boot-route(九)整合JPA操做數據庫
spring-boot-route(十一)數據庫配置信息加密
spring-boot-route(十二)整合redis作爲緩存
spring-boot-route(十三)整合RabbitMQ
spring-boot-route(十五)整合RocketMQ
spring-boot-route(十六)使用logback生產日誌文件
spring-boot-route(十七)使用aop記錄操做日誌
spring-boot-route(十八)spring-boot-adtuator監控應用
spring-boot-route(十九)spring-boot-admin監控服務
spring-boot-route(二十)Spring Task實現簡單定時任務
spring-boot-route(二十一)quartz實現動態定時任務
spring-boot-route(二十二)實現郵件發送功能
這個系列的文章都是工做中頻繁用到的知識,學完這個系列,應付平常開發綽綽有餘。若是還想了解其餘內容,掃面下方二維碼告訴我,我會進一步完善這個系列的文章!