@Controller和@RestController的区别

11 篇文章 1 订阅
8 篇文章 1 订阅

最近遇到注解 @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();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值