@RestController与@Controller的区别以及相关注解的用法

简而言之,@RestController与@Controller都用来表示控制器,但是@RestController是@Controller的衍生类(拓展),实际上@RestController=@Controller+@ResponseBody

@Controller

@Controller是Spring框架提供的注解,通过它标识的类,代表控制器类(控制层/表现层)。这里控制层里面的每个方法,都可以去调用@Service标识的类(业务逻辑层),而@Service标识的类中的方法可以继续调用@Resposity标识的接口实现类(Dao层/持久层)。

@Controller用于标记在一个类上,使用它标记的类就是一个SpringMVC的Controller类,分发处理器会扫描使用该注解的类的方法,并检测该方法是否使用了@RequestMapping注解。@Controller只是定义了一个控制器类,而使用@RequestMapping注解的方法才是处理请求的处理器。@RequestMapping给出外界访问方法的路径,或者说触发路径,触发条件。

@ResponseBody标记Controller类中的方法。把return的结果变成JSON对象返回。如果没有这个注解,这个方法只能返回要跳转的路径,即跳转的页面。有这个注解,可以不跳转页面,只返回JSON数据。

注:JSON对象:JSON 指的是 JavaScript 对象表示法

关于java中JSON的使用:java中JSON的使用(4种解析方式,满满干货)_java json用法_IT萧然的博客-CSDN博客

SpringBoot系列(5):SpringBoot对JSON数据的处理_spring-boot-starter-json_洒家肉山大魔王的博客-CSDN博客

@RestController

@RestController是Spring4.0之后新增的注解。相当于@Controller+@ResponseBody合在一起的作用。
 

相关注解说明:

在 Spring Boot 中使用到 @Controller 及相关的注解如下,主要分为三个层面进行,请求前,处理中,返回。

应用场景注解注解说明
处理请求@Controller处理 Http 请求
处理请求@RestController@Controller 的衍生注解
路由请求@RequestMapping路由请求 可以设置各种操作方法
路由请求@GetMappingGET 方法的路由
路由请求@PostMappingPOST 方法的路由
路由请求@PutMappingPUT 方法的路由
路由请求@DeleteMappingDELETE 方法的路由
请求参数@PathVariable处理请求 url 路径中的参数 /user/
请求参数@RequestParam处理问号后面的参数
请求参数@RequestBody请求参数以json格式提交
返回参数@ResponseBody返回 json 格式
  • @Controller 一般应用在有返回界面的应用场景下.

    例如,管理后台使用了 thymeleaf 作为模板开发,需要从后台直接返回 Model 对象到前台,那么这时候就需要使用 @Controller 来注解。

  • @RestController 如果只是接口,那么就用 RestController 来注解.

    例如前端页面全部使用了 Html、Jquery来开发,通过 Ajax 请求服务端接口,那么接口就使用 @RestController 统一注解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值