关于@GetMapping、@PostMapping、@PutMapping、@DeleteMapping的理解

一、前言
在Spring4.3中引入了{@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping},其中@PatchMapping是对put方式的一种补充,put可以是更新,但是是对整体的更新,patch是对局部的更新
二、幂等性
一次和多次请求某一个资源对于资源本身具有同样的结果。也就是任意多次执行对资源本身产生的影响与执行一次的影响相同
幂等不仅仅只是一次请求对资源没有副作用(比如数据库查询操作)
幂等包括第一次请求的时候对数据库产生了副作用,但是之后多次执行这个请求都不会对资源再产生副作用
幂等关注的是以后的多次请求是否对资源产生副作用,而不关注结果

SELECT col1 FROM tab1 WHERE col2 = 2, 无论执行多少次都不会改变状态,是幂等的
UPDATE tab1 SET col1 = 1 WHERE col2 = 2, 无论执行成功多少次状态都是一致的,因此也是幂等
UPDATE tab1 SET col1 = col1 + 1 WHERE col2 = 2, 每次执行结果都会变化,不是幂等

http协议明确规定,put、get、delete请求都是具有幂等性的,而post为非幂等性的。所以一般插入新数据的时候使用post方法,更新数据库时用put方法
三、@GetMapping
处理get请求,传统的RequestMapping来编写应该是@RequestMapping(value = “/get/{id}”, method = RequestMethod.GET)。新方法可简写为:@GetMapping("/get/{id}")
四、@PostMapping
处理post请求,传统的RequestMapping来编写应该是@RequestMapping(value = “/get”, method = RequestMethod.POST)。新方法可简写为:@PostMapping("/get")
五、针对前端传值
‘Content-Type’: ‘application/x-www-form-urlencoded’ 后端可以直接接收
‘Content-Type’: ‘application/json’ 后端需要用@RequestBody
传的时候最好使用json传值,null的类型会正常被处理
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值