@ResponseBody 和 @RequestBody 注解的区别

当我们使用Spring MVC开发Web应用程序的时候,常常需要从前端接收请求并响应数据。为此,Spring MVC提供了两个注解@ResponseBody和@RequestBody。

当我们使用Spring MVC开发Web应用程序的时候,常常需要从前端接收请求并响应数据。为此,Spring MVC提供了两个注解@ResponseBody和@RequestBody。

@ResponseBody

@ResponseBody注解通常用于Controller返回给前端的数据。它可以将Java对象转化成JSON格式返回给前台。

示例:

@RestController
@RequestMapping("/user")
public class UserController {

    @GetMapping("/getById/{id}")
    public User getById(@PathVariable Integer id){
        User user = userService.getById(id);
        return user;
    }

    @PostMapping("/add")
    public void addUser(@RequestBody User user){
        userService.addUser(user);
    }
}

在上面的例子中,getById方法使用@GetMapping注解,表示接收GET请求;然后,使用@PathVariable注解将id作为参数传入函数,函数内部使用userService.getById(id)获取对应的User对象,并返回该对象。

由于该方法标注了@GetMapping,Spring MVC能够判断Controller需要返回到前端,它会自动将获取到的对象序列化成JSON格式,然后回应给前端。

@RequestBody

@RequestBody注解通常用于Controller接收前端传递过来的JSON格式数据,并将其转化为Java对象使用。

示例:

@RestController
@RequestMapping("/user")
public class UserController {

    @PostMapping("/add")
    public void addUser(@RequestBody User user){
        userService.addUser(user);
    }

    @PostMapping("/update")
    public void updateUser(@RequestBody User user){
        userService.updateUser(user);
    }
}

在上面的例子中,addUser方法使用@PostMapping注解,表示接收POST请求;然后,使用@RequestBody注解将Controller接收到的JSON格式数据转化为User对象。

updateUser方法中,我们同样使用了@RequestBody标注。这样,我们能够获得包含更新过的数据的User对象,并更新到数据库中。

完成以上操作后,我们可以轻松地将JSON格式数据传递到Controller中,并将其转化为Java对象,并将Java对象转化为JSON格式数据,方便前端数据交互。

本文标题为:@ResponseBody 和 @RequestBody 注解的区别

基础教程推荐