一、PostMapping和PutMapping的區別
PostMapping和PutMapping都是用來處理HTTP POST請求的註解,但是兩者的區別在於:
1、PutMapping註解用於更新資源的請求。
2、PostMapping註解用於向服務端提交數據的請求。
3、PutMapping註解的請求體數據更新資源,而PostMapping註解的請求體數據創建了新的資源。
二、@PostMapping註解
@PostMapping是Spring MVC的註解之一,它可以用來處理客戶端發來的POST請求,通常用於處理表單提交數據。與之對應的註解還有@GetMapping、@PutMapping、@DeleteMapping、@PatchMapping和@RequestMapping。
@PostMapping註解的常用參數有value、path、name、params、consumes、produces、headers、defaultValue等。
其中value和path用於指定請求路徑,params用於指定請求參數,consumes用於指定請求的Content-Type,而produces用於指定響應的Content-Type。
@PostMapping(value = "/createUser") public ResponseEntity createUser(@RequestBody User user) { userService.createUser(user); return ResponseEntity.ok().build(); }
三、PostMapping和RequestMapping的區別
RequestMapping是一個用來處理請求的註解,它可以用來處理GET、POST、DELETE、PUT等形式的請求。而PostMapping只能用於處理POST請求。
RequestMapping的常用參數同樣可以用於@PostMapping註解上面,如value、path、name、params、consumes、produces、headers、defaultValue等。
PostMapping除了作為補充以外,更加專註於方法處理POST請求。相比之下,RequestMapping則是全能的註解。
@RequestMapping(value = "/createUser", method = RequestMethod.POST) public ResponseEntity createUser(@RequestBody User user) { userService.createUser(user); return ResponseEntity.ok().build(); }
四、PostMapping的produces屬性
PostMapping的produces屬性用於限定請求的Content-Type。如果請求的Content-Type不符合produces屬性的類型,就會返回406(Not Acceptable)錯誤碼。
@PostMapping(value = "/createUser", produces = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity createUser(@RequestBody User user) { userService.createUser(user); return ResponseEntity.ok().build(); }
五、PostMapping和SQL語句
PostMapping通常與SQL語句配合使用,用於對數據庫進行增、刪、改、查等操作。
@PostMapping(value = "/createUser") public int createUser(@RequestParam String name, @RequestParam String password, @RequestParam Integer age) { User user = new User(name, password, age); return userMapper.createUser(user); }
六、安卓中的@PostMapping
在Android中,可以使用Retrofit進行網絡請求。而Retrofit底層使用的就是OkHttp,OkHttp還提供了對應的PostMapping:
@POST("login") fun login(@Body loginReq: LoginReq): Call
七、Mapper和Repository的區別
Mapper和Repository都與數據庫操作相關,但是兩者的區別在於:
1、Mapper通常用於自定義SQL語句進行增、刪、改、查等操作,是MyBatis的精髓所在。
2、Repository則是更加通用的一種倉庫模式,它不僅可以操作SQL數據庫,也可以操作NoSQL數據庫、文件、緩存等多種數據源。
所以,如果僅僅是操作SQL數據庫,使用Mapper更加合適;如果要操作多種數據源,則建議使用Repository。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/301153.html