• Springboot常用的请求方式注解(@RequestMapping、@PutMapping、@DeleteMapping、@PostMapping)


    文章目录


    前言

    常用的网络请求方式包括GET, POST, PUT, DELETE等,这些请求方式在Springboot中是如何使用的呢?下面就对这个内容进行探究。


    一、请求方式

    1. GET:GET请求是来获取数据的,相当于数据库中的select,不对服务器数据做任何改动,get请求参数加在URL后面,必要时需进行涉密处理。
    2. POST:POST向服务器发送数据,相当于数据库的insert操作。会修改数据种类,在创建新的数据,提交表单时,采用POST请求。
    3. PUT:PUT也是想服务器发送数据,相当于数据库的update操作,用来修改数据内容,但是不会增加数据的种类。
    4. 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 courseInfoList = courseService.selectCourseInfoList(courseInfo);
            return PageUtils.getMyDataTable(courseInfoList);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    前端

    export function listCourse(query){
      return request({
      // 这里多加一个/course的原因是在后端的整个类上加了 @RequestMapping("/course")注解
        url:'/course/list',
        method:'get',
        params:query
      })
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    一般在报错的http状态为405的时候,指的是请求方法不允许。出现这种错误需要考虑前后端的请求方法是否匹配。

    可以使用带有占位符的@RequestMapping方法,将URL中的占位符绑定到处理方法的参数里。

        @RequestMapping("/{id}")
        public AjaxResult getCourse(@PathVariable("id") Long id){
            return AjaxResult.success(courseService.selectCourseById(id));
        }
    
    • 1
    • 2
    • 3
    • 4

    2、@PutMapping

    相当于:

    @RequestMapping(value="/{id}", method=RequestMethod.PUT)
    
    • 1

    实例后端:

        @PutMapping
        public AjaxResult edit(@RequestBody CourseInfo courseInfo){
            return toAjax(courseService.updateCourse(courseInfo));
        }
    
    • 1
    • 2
    • 3
    • 4

    实例前端:

    export function updateCourse(data){
      return request({
        url:'/course',
        method:'put',
        data:data,
      })
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    3、@PostMapping

    相当于:

    @RequestMapping(value="", method=RequestMethod.POST)
    
    • 1

    实例后端:

        @PostMapping
        public AjaxResult add(@RequestBody CourseInfo courseInfo){
            System.out.println(courseInfo.toString());
            return toAjax(courseService.insertCourse(courseInfo));
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    实例前端:

    export function addCourse(data){
      return request({
        url:'/course',
        method:'post',
        data:data,
      })
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    4、 @DeleteMapping

    相当于:

    @RequestMapping(value="/{id}", method=RequestMethod.DELETE)
    
    • 1

    实例后端:

        @DeleteMapping("/{ids}")
        public AjaxResult delCourse(@PathVariable Long []ids){
            return toAjax(courseService.delCourse(ids));
        }
    
    • 1
    • 2
    • 3
    • 4

    实例前端:

    export function delCourse(id) {
      return request({
        url:'/course/'+id,
        method:'delete'
      })
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    总结

    对@RequestMapping的总结告一段落,主要是RequestMapping的作用、参数、路由占位符使用,及其派生注解等。

    先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

  • 相关阅读:
    C++中类的六个默认成员函数
    php 支付宝支付(带回调)
    Lumiprobe 活性染料丨吲哚菁绿说明书
    FEDformer里面的CZ1d
    Z-Score模型的进阶版:Zeta模型
    Python循环结构
    算法分析与设计考前冲刺 (算法基础、数据结构与STL、递归和分治、 动态规划、贪心算法、 回溯算法)
    2_里氏替换原则
    怎么快速给文件从1到100命名
    【QT】对象树
  • 原文地址:https://blog.csdn.net/m0_67401920/article/details/126114680