zoukankan      html  css  js  c++  java
  • Spring中的@Controller和 @RestController 的区别以及@ReqeustMapping的作用

    一、@Controller和 @RestController 的共同点:

         1.都是加在类级别上的

         2. 都可以处理Http请求

    二、@Controller 和 @RestController 的区别

    @RestController 是 @Controller 和 @ResponseBody 的结合体

    以上代码等同于如下

    图2中的 @ResponseBody 是和 @Controller 一起针对整个类使用的,也可以把 @ResponseBody 写在类中的所有方法上,如下代码:

    三、 RequestMapping 的使用

    @RequestMapping 配置url 映射,既可以作用在控制器的某个方法上,也可以作用在控制器的类上。

    1.在控制器的某个方法上添加注解@RequestMapping 时,表示只作用在该方法上,如下图1

    2.即在控制器的类上添加注解@RequestMapping,又在控制器的某个方法上添加注解,表示对方法的补充和声明。类上的注解是针对整个类的,也就是说是针对类中所有的方法的

    ps:2.不能只在控制器的类上添加注解@RequestMapping ,否则会出现404报错

    例子一:@RequestMapping 注解只作用在方法sayHello 上

    在本地  http://localhost:8080/hello 后的到的结果为:hello world

    例子二:@Requestapping 注解即作用在方法sayHello上,又添加在类上

    1.本地执行: http://localhost:8080/home     ,结果如下图

    2.本地执行: http://localhost:8080/home/hello  ,结果如下图

    例子3: 在同一个类中的不同方法上添加 @RequestMapping 

    执行:http://localhost:8080/hello 得到的结果如下:

    执行:http://localhost:8080/hi    得到的结果如下:

     

    例子4:在类和多个方法上均添加 @RequestMapping 注解

    执行 http://localhost:8080/home  ,得到的结果为:404

    执行 http://localhost:8080/home/hello ,得到的结果为:

    执行 http://localhost:8080/home/hi   ,  得到的结果为:

    改变自己,从自律开始
  • 相关阅读:
    20200804 千锤百炼软工人第三十天
    20200803 千锤百炼软工人第二十九天
    20200802 千锤百炼软工人第二十八天
    小谢第51问:从输入url到浏览器显示页面发生了什么
    小谢第50问:vuex的五个属性-使用-介绍
    小谢第49问:URL都由什么组成
    小谢第48问:js跳转页面与打开新窗口的方法
    小谢第47问:vue项目中,assets和static的区别
    小谢第46问:js事件机制
    小谢第45问:Ajax 是什么? 如何创建一个 Ajax
  • 原文地址:https://www.cnblogs.com/kekouwen/p/10272830.html
Copyright © 2011-2022 走看看