restcontroller和controller区别(restcontroler和 controller)

  本篇文章为你整理了restcontroller和controller区别(restcontroler和 controller)的详细内容,包含有restcontroller与controller区别 restcontroler和 controller rescontroller和controller的区别 control和restcontrol的区别 restcontroller和controller区别,希望能帮助你了解 restcontroller和controller区别。

  @RestController和@Controller注解

  RestController的作用相当于Controller加ResponseBody共同作用的结果,但采用RestController请求方式一般会采用Restful风格的形式。

  Controller的作用:声明该类是Controller层的Bean,将该类声明进入Spring容器中进行管理

  ResponseBody的作用:表明该类的所有方法的返回值都直接进行提交而不经过视图解析器,且返回值的数据自动封装为json的数据格式

  RestController的作用:包含上面两个的作用,且支持Restful风格的数据提交方式

  @RestController源码如下。

  

@Target(ElementType.TYPE)

 

  @Retention(RetentionPolicy.RUNTIME)

  @Documented@Controller

  @ResponseBodypublic @interface RestController {

   /** * The value may indicate a suggestion for a logical component name, * to be turned into a Spring bean in case of an autodetected component. * @return the suggested component name, if any * @since 4.0.1 */

   String value() default "";

  

 

  ​ @RestController的编写方式依赖注解组合,@RestController被@Controller和@ResponseBody标注,表示@RestController具有两者的注解语义,因此在注解处理时@RestController比@Controller多具有一个@ResponseBody语义,这就是@RestController和@Controller的区别,也是@RestController的返回值为何都是经过转换的json的原因。

  @ResponseBody注解的处理过程

  ​ 既然知道@RestController与@Controller的区别是多了一个@ResponseBody语义,我们不妨了解一下@ResponseBody的处理过程。

  首先,可以知道,@ResponseBody是一个针对方法返回值进行处理的注解。如果熟悉Spring MVC处理过程的话,可以知道在根据requesturl映射获取到HandlerMethod之后,根据HandlerMethod调度请求方法的对象是HandlerAdapter,方法调用结束,返回值处理的调度对象也是HandlerAdapter。所以,@ResponseBody注解的处理应该也是在HandlerAdapter中完成。

  Restful风格:

  get:获取数据时用的请求方式

  post:更新数据时的请求方式

  put:增加数据时的请求方式

  delete:删除数据时的请求方式

  查考文档:https://blog.csdn.net/uuqaz/article/details/123919771

  以上就是restcontroller和controller区别(restcontroler和 controller)的详细内容,想要了解更多 restcontroller和controller区别的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: