千家信息网

springboot中@Controller和@RestController的区别是什么

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,小编给大家分享一下springboot中@Controller和@RestController的区别是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获
千家信息网最后更新 2026年11月01日springboot中@Controller和@RestController的区别是什么

小编给大家分享一下springboot中@Controller和@RestController的区别是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

@Controller和@RestController的区别及应用

@Controller和@RestController区别

在springboot开发中控制层使用注解@Controller时,加有@GetMapping(@PostMapping或@RequestMapping)注解的方法返回值对应的是一个视图,而使用@RestController返回值对应的是json数据,而@Controller+@ResponseBody的作用相当于@RestController。

@Controller的应用

先在application.properties配置文件中配置

spring.mvc.view.prefix=classpath:/templates/spring.mvc.view.suffix=.html

然后在控制层CustomerController类的代码为

@Controllerpublic class CustomerController {    @Resource    CustomerServiceI customerServiceI;    @GetMapping("/")    public String index() {        return "redirect:/list";    }    @GetMapping("/list")    public String list(Model model) {        List users = customerServiceI.getUserList();        model.addAttribute("users",users);        return "list";    }}

启动程序后在浏览器输入localhost:8080/list访问页面即为templates文件夹下的list.html

@RestController的应用

控制层CustomerController类的代码为

@RestControllerpublic class CustomerController {    @Resource    CustomerServiceI customerServiceI;    @GetMapping("/")    public String index() {        return "redirect:/list";    }    @GetMapping("/list")    public List list(Model model) {        List users = customerServiceI.getUserList();        model.addAttribute("users",users);        return users;    }}

启动程序后在浏览器输入localhost:8080/list访问效果如下

@Controller和@RestController区别的小坑

这两个的区别其实是个很简单的问题,但是对于初学者可能遇到了会掉坑里。

@RestController注解相当于@ResponseBody + @Controller合在一起的作用。

1.如果注解Controller使用@RestController

则Controller中的方法无法返回jsp页面,或者html,配置的视图解析器 InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。

代码如图:

结果如图:

2.如果需要返回到指定页面(jsp/html)

则需要用 @Controller配合视图解析器InternalResourceViewResolver才行。

代码如图:

结果如图:

如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。

代码如图:

结果如图:

以上是"springboot中@Controller和@RestController的区别是什么"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

如图 代码 内容 注解 页面 作用 方法 篇文章 结果 视图 应用 控制 配置 文件 浏览器 程序 浏览 输入 不怎么 两个 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 小米移动互联网科技园 南京欣网互联网络科技有限公司 互联网的科技 互联网科技资迅 礼当家互联网科技 狮子座互联网科技培训 互联网高科技股票 衡水科技产业互联网平台 深圳前海聚择互联网科技有限公司 互联网企业和科技型企业 来此购互联网科技有限公司 米聚互联网科技南京有限公司排面 广西互联网科技孵化中心 民营互联网公司国防科技 翼展科技 首家互联网医院 无锡工业互联网科技有限公司 互联网公司高科技产品 互联网相关科技技术 广州有谷有贝互联网科技有限公司 互联网大会出现的黑科技 互联网科技公司税收优惠 易互联网科技有限公司 互联网科技公司发展 互联网公司会议桌创意科技软装饰 蓝色互联网科技 北京华百购互联网科技有限公司 常德市电业局互联网科技部 互联网时代科技改变生活 互联网科技大赛获奖感言 本届互联网大会上的黑科技
0