对@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(){ } }
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论