Spring中的注解 @RequestBody和@ResponseBody的使用和区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring中的注解 @RequestBody和@ResponseBody的使用和区别相关的知识,希望对你有一定的参考价值。

@RequestBody

  • @RequestBody的作用是将前端传来的json格式的数据转为自己定义好的javabean对象,需要注意的是传入数据的属性名称要和后端javabean中定义的一致
  • @RequestBody要写在方法的参数前,不能写在方法名上方

@ResponseBody

  • @ResponseBody的作用是将后端以return返回的javabean类型数据转为json类型数据。
  • @ResponseBody要写在方法名上(如果使用@Restcontroller注解则不用写,因为Restcontroller注解里包含了ResponseBody注解)

前端传过来的参数必须和实例类里的参数定义的一致,本例就是和CourseVo里的属性名称一致

package com.stu.eduservice.controller;

import com.stu.commonutils.ResultData;
import com.stu.eduservice.entity.vo.CourseVo;
import com.stu.eduservice.service.IEduCourseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * <p>
 * 课程 前端控制器
 * </p>
 *
 * @author stu
 * @since 2021-05-29
 */
@RestController
@RequestMapping("/eduservice/course")
@CrossOrigin
public class EduCourseController {

    @Autowired
    private IEduCourseService eduCourseService;

    //添加课程基本信息
    //@RestController里包含了ResponseBody注解,如果controller不是@RestController而是@Controller,则这里需要加上ResponseBody注解
    @PostMapping("addCourseInfo")
    public ResultData addCourseInfo(@RequestBody CourseVo courseVo){

        eduCourseService.saveCourseInfo(courseVo);
        return ResultData.success();
    }

}

 

以上是关于Spring中的注解 @RequestBody和@ResponseBody的使用和区别的主要内容,如果未能解决你的问题,请参考以下文章

自定义spring参数注解 - 打破@RequestBody单体限制

Spring中的@RequestBody注解与常规的HTTP方法的传值方式

@RequestBody注解原理

spring 中注解的详细解释之@Responsebody与@RequestBody

Spring中的注解@

Spring Boot 2从入门到入坟 | 请求参数处理篇:常用参数注解之@RequestBody