Springboot常用的请求方式注解(@RequestMapping、@PutMapping、@DeleteMapping、@PostMapping)
Springboot中@RequestMapping注解以及其派生注解
前言
常用的网络请求方式包括GET, POST, PUT, DELETE等,这些请求方式在Springboot中是如何使用的呢?下面就对这个内容进行探究。
一、请求方式
- GET:GET请求是来获取数据的,相当于数据库中的select,不对服务器数据做任何改动,get请求参数加在URL后面,必要时需进行涉密处理。
- POST:POST向服务器发送数据,相当于数据库的insert操作。会修改数据种类,在创建新的数据,提交表单时,采用POST请求。
- PUT:PUT也是想服务器发送数据,相当于数据库的update操作,用来修改数据内容,但是不会增加数据的种类。
- DELETE:DELETE用来删除数据,相当于数据库中的delete操作。
二、Springboot中相应注解
1、@RequestMapping
Springboot使用@RequestMapping来映射请求,前端发来请求可以通过@RequestMapping来决定由哪个函数处理。
@RequestMapping主要由value和method两个属性,value指的是映射路径,method指的是何种请求(可以设置多个)。例如:@RequestMapping(value=“/login”,method=RequestMethod.GET)
@GetMapping、@PostMapping、@PutMapping和@DeleteMapping分别是@RequestMapping请求方法为get、post、put、delete的派生注解。也就是说凡是使用到上面四种注解的地方都可以使用@RequestMapping来代替。如果@RequestMapping不设置method,那么它将接收符合条件的任何访问方式的请求。
下面是一个请求的前后端的代码示例(使用get请求方式):
@RequestMapping("/list")
public TableDataInfo list(CourseInfo courseInfo){
Integer pageNum = courseInfo.getPageNum();
Integer pageSize = courseInfo.getPageSize();
String orderBy = courseInfo.getOrderBy();
PageUtils.startMyPage(pageNum,pageSize,orderBy);
List<CourseInfo> courseInfoList = courseService.selectCourseInfoList(courseInfo);
return PageUtils.getMyDataTable(courseInfoList);
前端
export function listCourse(query){
return request({
// 这里多加一个/course的原因是在后端的整个类上加了 @RequestMapping("/course")注解
url:'/course/list',
method:'get',
params:query
})
}
一般在报错的http状态为405的时候,指的是请求方法不允许。出现这种错误需要考虑前后端的请求方法是否匹配。
可以使用带有占位符的@RequestMapping方法,将URL中的占位符绑定到处理方法的参数里。
@RequestMapping("/{id}")
public AjaxResult getCourse(@PathVariable("id") Long id){
return AjaxResult.success(courseService.selectCourseById(id));
}
2、@PutMapping
相当于:
@RequestMapping(value="/{id}", method=RequestMethod.PUT)
实例后端:
@PutMapping
public AjaxResult edit(@RequestBody CourseInfo courseInfo){
return toAjax(courseService.updateCourse(courseInfo));
}
实例前端:
export function updateCourse(data){
return request({
url:'/course',
method:'put',
data:data,
})
}
3、@PostMapping
相当于:
@RequestMapping(value="", method=RequestMethod.POST)
实例后端:
@PostMapping
public AjaxResult add(@RequestBody CourseInfo courseInfo){
System.out.println(courseInfo.toString());
return toAjax(courseService.insertCourse(courseInfo));
}
实例前端:
export function addCourse(data){
return request({
url:'/course',
method:'post',
data:data,
})
}
4、 @DeleteMapping
相当于:
@RequestMapping(value="/{id}", method=RequestMethod.DELETE)
实例后端:
@DeleteMapping("/{ids}")
public AjaxResult delCourse(@PathVariable Long []ids){
return toAjax(courseService.delCourse(ids));
}
实例前端:
export function delCourse(id) {
return request({
url:'/course/'+id,
method:'delete'
})
}
总结
对@RequestMapping的总结告一段落,主要是RequestMapping的作用、参数、路由占位符使用,及其派生注解等。
更多推荐
所有评论(0)