restcontrolleradvice注解_注释有什么作用

restcontrolleradvice注解_注释有什么作用原文出自"https://www.cnblogs.com/yaqee/p/11256047.html" 一、在Spring中@RestController的作用等同于@Controller + @ResponseBody。 所以想要理解@RestController注解就要先了解

原文出自”https://www.cnblogs.com/yaqee/p/11256047.html”

一、在Spring中@RestController的作用等同于@Controller + @ResponseBody。

  所以想要理解@RestController注解就要先了解@Controller和@ResponseBody注解。

二、@Controller注解

  在一个类上添加@Controller注解,表明了这个类是一个控制器类。但想要让这个类成为一个处理请求的处理器光有@Controller注解是不够的,他还需要进一步修炼才能成为一个处理器。

  1.在spring容器中创建该类的实例。创建实例的方式有两种:

1
<bean
class
=
"test.controller.MyController"
/>

  上述这种方式是在spring容器中注入单个bean,当项目比较大,控制器类比较多时,用这种方式向Spring容器中注入bean非常的让人苦恼,索性有第二种方式。

1
<context:component-scan base-scan=
"test.controller"
/>

  这种方式会扫描指定包中的所有类,并生成相应的bean注入到spring容器中。使用这种方式当然能够极大提高我们的开发效率,但是有时候我们不想某一类型的类注入到spring容器中。

  这个时候第二种方式也可以解决。

1
2
3
<context:component-scan base-
package
=
"test"
>
  
  <context:include-filter type=
"annotation"
expression=
"org.springframework.stereotype.Service"
/>
</context:component-scan>

  上述代码表示扫描test包中除有@Service注解之外的类。

  2.将@Controller注解的类注入Spring容器中,只是该类成为处理器的第一步,想要修炼大成,还需要在该类中添加注解@RequestMapping。

   @RequestMapping注解是用来映射请求的,即指明处理器可以处理哪些URL请求,该注解既可以用在类上,也可以用在方法上。

   当使用@RequestMapping标记控制器类时,方法的请求地址是相对类的请求地址而言的;当没有使用@RequestMapping标记类时,方法的请求地址是绝对路径。

   @RequestMapping的地址可以是uri变量,并且通过@PathVariable注解获取作为方法的参数。也可以是通配符来筛选请求地址。具体的使用方法不是本次的重点,有兴趣的可以看

    https://www.cnblogs.com/xiepeixing/p/4243288.html

复制代码
 1   @Controller  2   @RequestMapping("/user")  3   public class UserController{  4  5   @RequestMapping("/users")  6   public String users() {  7   return "users";  8    }  9 10 11   }
复制代码

  此时请求users方法的url路径就是:…/user/users。

  可以看到上面users方法的返回值是字符串类型的,这个就是处理器在处理完任务后将要跳转的页面。如果想要方法直接返回结果,而不是跳转页面,这就要用到@ResponseBody注解了。

三、@ResponseBody注解

  @ResponseBody表示方法的返回值直接以指定的格式写入Http response body中,而不是解析为跳转路径。

  格式的转换是通过HttpMessageConverter中的方法实现的,因为它是一个接口,因此由其实现类完成转换。

如果要求方法返回的是json格式数据,而不是跳转页面,可以直接在类上标注@RestController,而不用在每个方法中标注@ResponseBody,简化了开发过程。

理解@RestController过程中参考了下面这些博客,非常感谢

https://www.cnblogs.com/daimajun/p/7152970.html

https://blog.csdn.net/l358366885/article/details/79485497

https://blog.csdn.net/sunroyfcb/article/details/81048675

今天的文章restcontrolleradvice注解_注释有什么作用分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/49462.html

(0)
编程小号编程小号
上一篇 2023-09-03 07:30
下一篇 2023-09-03 07:46

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注