欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

我对@RestController注解的理解,

来源: javaer 分享于  点击 21189 次 点评:243

我对@RestController注解的理解,


目录
  • 对@RestController注解的理解
    • 在Spring中@RestController的作用
    • @Controller注解
    • @ResponseBody注解
    • 代码示例
  • 总结

    对@RestController注解的理解

    在Spring中@RestController的作用

    等同于@Controller + @ResponseBody。

    所以想要理解@RestController注解

    就要先了解@Controller和@ResponseBody注解

    @Controller注解

    在一个类上添加@Controller注解,表明了这个类是一个控制器类。

    这里省略对Controller注解的说明了。

    @ResponseBody注解

    @ResponseBody表示方法的返回值直接以指定的格式写入Http response body中,而不是解析为跳转路径。

    格式的转换是通过HttpMessageConverter中的方法实现的,因为它是一个接口,因此由其实现类完成转换。

    如果要求方法返回的是json格式数据,而不是跳转页面,可以直接在类上标注@RestController,而不用在每个方法中标注@ResponseBody,简化了开发过程。

    @Controller和@RestController的区别:

    @Controller:

    • 在对应的方法上,视图解析器可以解析return 的jsp,html页面,并且跳转到相应页面
    • 若返回json等内容到页面,则需要加@ResponseBody注解

    @RestController:

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

    代码示例

    BuyerProductController

    /**
     * 买家商品
     * Created by 李柏霖
     * 2020/10/17 20:11
     */
    
    package com.lbl.controller;
    
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    @RequestMapping("/buyer/product")
    public class BuyerProductController {
    
        @GetMapping("/list")
        public void list(){
    
        }
    }
    

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持3672js教程。

    您可能感兴趣的文章:
    • Spring中的@RestController注解详细解析
    • Spring中@RestControllerAdvice注解的使用详解
    • SpringBoot中@RestControllerAdvice注解的使用
    • Spring中的@RestControllerAdvice注解使用方法解析
    • SpringBoot中@RestControllerAdvice注解实现全局异常处理类
    • Spring中的@RestControllerAdvice注解使用解析
    相关栏目:

    用户点评