解释RESTful
RESTful主要对应的是HTTP协议中的四种请求方式:GET
、POST
、PUT
、DELETE
。是不是不太熟悉?换个说法:CURD(增删改查)是不是熟悉一点了。其实就是将四种不同的请求方式对应不同类型的请求。
- GET: 负责查询数据,业务功能一般是
SELECT
,将返回封装的JSON对象。 - POST: 负责新增数据,业务功能一般是
INSERT
,将接收封装好的数据插入到数据库中。 - PUT: 负责修改数据,业务功能一般是
UPDATE
,将接收封装好的数据,根据条件更新数据库中已有的数据。 - DELETE: 负责删除数据,业务功能一般是
DELETE
,将根据某种条件,删除某行或者多行数据库中的数据。
老的请求方式 @RequestMapping
通常使用SpringMVC写请求映射的时候用的是@Requestmapping
注解,比如说:
@Controller
public class UserController{
@RequestMapping("/user")
public string getUsers(){
// do...
}
}
这个UserController
其中的getUsers
方法负责响应/user
的请求,这个无参数的映射还看不出什么,但是有两个隐含的问题
- 其他程序员看这个请求,不清楚这个请求是具体在做哪项业务(GET/POST/PUT/DELETE)
/user
这个映射就被写死了,不能再写第二个@RequestMapping("/user")
- GET、POST、PUT、DELETE方式都能被RequestMapping接收,只要对应
/user
请求路径
RESTful风格的请求方式
那我们再看使用RESTful风格的请求映射。以Get
请求为例子。
@Controller
public class UserController{
// @RequestMapping(value = "/user",method ="GET")
@GetMapping("/user")
public string getUsers(){
// do...
}
}
@RequestMapping(value = "/user",method ="GET")
这里也就多指定了一个属性:method
,内容是GET
,这表示这个请求只响应的是Get
方法,而且通过RESTful风格的规定,这个方法表示的是一个查找操作,这种风格能增加代码的规范性和可读性。
- 它的简便形式:
@GetMapping("/user")
,这个就是简写。
其它的简写形式:
@PostMapping
:新增业务,负责post
方法的请求。@DeleteMapping
:删除业务,负责delete
方法的请求。@PutMapping
:更新业务,负责put
方法的请求。