Spring中@Controller和@RestController的区别详解

 更新时间:2023年10月19日 10:24:22   作者:yuhuofei2021  
这篇文章主要介绍了Spring中@Controller和@RestController的区别详解,@RestController 是 @Controller 和 @ResponseBody 的结合体,单独使用 @RestController 的效果与 @Controller 和 @ResponseBody 二者同时使用的效果相同,需要的朋友可以参考下

@Controller 和 @RestController

最近遇到注解 @Controller 和 @RestController 在使用上的小问题,记录一下二者的区别。

相同点

都可以用来表示 Spring 的某个类,是否可以接收 HTTP 请求

不同点

@RestController

在这里插入图片描述

  1. 由源码可知,@RestController 是 @Controller 和 @ResponseBody 的结合体,单独使用 @RestController 的效果与 @Controller 和 @ResponseBody 二者同时使用的效果相同
  2. 使用 @RestController 注解标记的类,它里面的所有方法只能返回 String、Object、Json 等实体对象,不能跳转到 jsp 或者 html 等模版页面

@Controller

在这里插入图片描述

  1. 标识一个 Spring 类是 Spring MVC controller处理器
  2. 用注解 @Controller 标记的类,它里面的方法的返回值,会直接被视图解析器解析为页面地址,并跳转到相应的 jsp,html 页面
  3. 在被注解 @Controller 标记的类中,如果某个方法想返回实体对象,那么需要在该方法上,加上 @ResponseBody 注解,如下所示
@Controller
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    @ResponseBody
    @RequestMapping("/queryAllUser")
    public List<User> queryAllUser() {
        return userService.queryUserList();
    }
}

到此这篇关于Spring中@Controller和@RestController的区别详解的文章就介绍到这了,更多相关@Controller和@RestController的区别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot使用@Async注解可能会遇到的8大坑点汇总

    SpringBoot使用@Async注解可能会遇到的8大坑点汇总

    SpringBoot中,@Async注解可以实现异步线程调用,用法简单,体验舒适,但是你一定碰到过异步调用不生效的情况,今天,我就列出90%的人都可能会遇到的8大坑点,需要的朋友可以参考下
    2023-09-09
  • mybatis拦截器实现数据权限项目实践

    mybatis拦截器实现数据权限项目实践

    本文主要介绍了mybatis拦截器实现数据权限项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • 解析idea内嵌浏览器翻译

    解析idea内嵌浏览器翻译

    这篇文章主要介绍了解析idea内嵌浏览器翻译的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • Java单元测试Powermockito和Mockito使用总结

    Java单元测试Powermockito和Mockito使用总结

    公司单元测试框架选用了Junit 4.12,Mock框架选用了Mockito和PowerMock,本文主要介绍了Java单元测试Powermockito和Mockito使用总结,感兴趣的可以了解一下
    2021-09-09
  • 详解Java中的ReentrantLock锁

    详解Java中的ReentrantLock锁

    这篇文章主要介绍了Java中ReentrantLock锁的相关资料,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2021-01-01
  • Spring Boot中@ConditionalOnProperty的使用方法

    Spring Boot中@ConditionalOnProperty的使用方法

    这篇文章主要给大家介绍了关于Spring Boot中@ConditionalOnProperty的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者使用Spring Boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-12-12
  • Caffeine本地缓存核心原理与使用方法详解(含与Spring Cache集成)

    Caffeine本地缓存核心原理与使用方法详解(含与Spring Cache集成)

    本文介绍Caffeine作为高性能本地缓存库,具备智能淘汰策略和并发优化,集成SpringCache实现缓存管理,探讨缓存穿透、击穿、雪崩防护及多级缓存(Caffeine+Redis)方案,适用于Java生态的缓存实践,感兴趣的朋友跟随小编一起看看吧
    2025-09-09
  • Java 中的抽象介绍

    Java 中的抽象介绍

    这篇文章主要介绍了Java 中的抽象,数据抽象是一种仅向用户显示基本细节的属性。不向用户显示琐碎或非必需的单元,下面文章Java抽象详细内容,需要的朋友可以参考一下
    2021-12-12
  • java中ThreadLocal和ThreadLocalMap浅析

    java中ThreadLocal和ThreadLocalMap浅析

    这篇文章主要介绍了java中ThreadLocal和ThreadLocalMap浅析,ThreadLocal类用来设置线程私有变量 本身不储存值 主要提供自身引用 和 操作ThreadLocalMap 属性值得方法,需要的朋友可以参考下
    2023-09-09
  • C++内存管理看这一篇就够了

    C++内存管理看这一篇就够了

    这篇文章主要介绍了C/C++中的内存管理小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-08-08

最新评论