restful风格

  1. @RestController

    相当于@ResponseBody + @Controller合在一起的作用。返回json数据不需要在方法前面加@ResponseBody注解了,但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面。

  2. @ResponseBody——@ResponseBody这个注解通常使用在控制层(controller)的方法上。将方法的返回值,以特定的格式写入到response的body区域,进而将数据返回给客户端。当方法上面没有写ResponseBody,底层会将方法的返回值封装为ModelAndView对象。如果返回值是字符串,那么直接将字符串写到客户端;如果是一个对象,会将对象转化为json串,然后写到客户端。

  3. @requestBody注解的使用场景
    @requestBody注解常用来处理content-type不是默认的application/x-www-form-urlcoded编码的内容,比如说:application/json或者是application/xml等。
    其中处理application/json类型的数据频率最高。
    @requestBody注解常用的使用方式:
    @requestBody注解常用的使用方式有两种,
    一、将json格式的数据绑定到对应的实体类中
    二、将json格式的数据按照key值分别赋值在对应的字符串中。

  4. @GetMapping

    @GetMapping是一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写。而@PostMapping是@RequestMapping(method = RequestMethod.POST)的缩写,以此类推。直接指定提交方式为get
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

上面的两个方法可以简化一些注解的写法:

  • @RequestMapping和DELETE方法可以合在一起写为@DeleteMapping,values中的"/users"可以在类上面统一写@RequestMapping("/users"),如果需要传参数id,直接写@DeleteMapping("/{id}")
  • @ResponseBody和@Controller可以合在一起写为@RestController

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐