Spring中@RequestMapping、@RestController和Postman

 更新时间:2024年10月21日 09:04:19   作者:椰椰椰耶  
本文介绍了Spring框架中常用的@RequestMapping和@RestController注解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1.@RequestMapping 注解介绍

@RequestMapping 是 Spring Web MVC 引用程序中最常被用到的注解之一,它是用来注册接口的路由映射的,表示服务收到请求时,路径为 /sayHello 的请求就会调用 sayHi 这个方法的代码

路由映射:当用户访问一个 URL 时,将用户的请求对应到程序中某个类的某个方法的过程就叫路由映射

既然 @RequestMapping 已经可以达到我们的目的了,我们为什么还要加 @RestController 呢?

我们把 @RestController 去掉,再来访问一次

image.png

可以看到,程序报了 404,找不到该页面,这就是 @RestController 起到的作用

一个项目中,会有很多类,每个类可能会有很多的方法,Spring 程序怎么知道要执行哪个方法呢?

Spring 会对所有的类进行扫描,如果类加了注解 @RestController,Spring 才会去看这个类里面的方法有没有加 @RequestMapping 这个注解

2. @RequestMapping 使用

@RequestMapping 既可修饰方法,也可修饰类。 当修饰类和方法时,访问的地址是类路径+方法路径

  • @RequestMapping 标识一个类:设置映射请求的请求路径的初识信息
  • @RequestMapping 标识一个方法:设置映射请求请求路径的具体信息
import org.springframework.web.bind.annotation.RequestMapping;  
import org.springframework.web.bind.annotation.RestController;  
  
@RequestMapping("/user")  
@RestController  
public class UserController {  
  
    @RequestMapping("/sayHello")  
    public String sayHi() {  
        return "hello, spring mvc";  
    }  
}

访问地址:
http://127.0.0.1:8080/user/sayHello 

image.png|496

注意:@RequestMapping 的 URL 路径最前面加不加 / 都可以,Spring 程序启动时,会进行判断,如果前面没有 /,Spring 会拼接上一个 /

通常情况下,我们加上 /@RequestMapping 的 URL 路径也可以是多层的,最终访问时,依然是类路径+方法路径

import org.springframework.web.bind.annotation.RequestMapping;  
import org.springframework.web.bind.annotation.RestController;  
  
@RequestMapping("/user/m1")  
@RestController  
public class UserController {  
  
    @RequestMapping("/sayHello")  
    public String sayHi() {  
        return "hello, spring mvc";  
    }  
}

image.png|479

3. @RequestMapping 是 GET 还是 POST 请求?

我们来测试一下就知道了

GET 请求

浏览器发送的请求类型都是 GET,通过以上案例,可以看出来 @RequestMapping 支持 GET 请求

POST 请求

我们通过 form 表单来构造请求:

创建 test.html,HTML代码:

<!DOCTYPE html>  
<html lang="en">  
<head>  
    <meta charset="UTF-8">  
    <title>Title</title>  
</head>  
<body>  
    <form action="user/sayHello" method="post">  
        <input type="submit" value="提交">  
    </form>  
</body>  
</html>

前端代码放在 static 目录下,访问方式为:
http://127.0.0.1:8080/test.html 

image.png|209

如果有多层目录,访问链接从 static 目录开始写

image.png|307

如上图,访问链接为:127.0.0.1:8080/html/test.html

image.png

从运行结果可以看出:@RequestMapping 既支持 GET 请求,又支持 POST 请求。同理,也支持其他的请求方式,那如何指定 GET 或者 POST 类型呢?

指定 GET/POST 方法类型

我们可以显示指定的 @RequestMapping 来接收 POST 的情况,如下所示:

import org.springframework.web.bind.annotation.RequestMapping;  
import org.springframework.web.bind.annotation.RequestMethod;  
import org.springframework.web.bind.annotation.RestController;  
  
@RestController  
public class UserController {  
  
    @RequestMapping(value = "/getRequest", method = RequestMethod.POST)  
    public String sayHi() {  
        return "hello, spring mvc";  
    }  
}

2. Postman 介绍

从上面的案例中,发现了一个新的问题,就是我们测试后端方法时,还需要去写前端代码。这对我们来说,是一件麻烦又痛苦的事情。

随着互联网的发展,也随着项目难度的增加,企业也按照开发的功能,把人员拆分成了不同的团队。界面显示交给“前端开发工程师”,业务逻辑的实现交给了“后端开发工程师”。后端开发工程师,不要求也不需要掌握前端的技能了。

那后端开发工程师如何测试自己的程序呢?使用专业的接口测试工具—— Postman

1. 创建请求

image.png|485

image.png|455

界面介绍

image.png

2. 传参介绍

1. 普通传参

也就是通过查询字符串来传参

学习 HTTP 的时候,我们通过 URL 来访问互联网上的某一个资源,URL 的格式如下:

image.png

 其中,查询字符串就是请求的参数

image.png

2. form-data

完整表示为:multipart/form-data。表单提交的数据,在 form 标签中加上 enctyped="multipart/form-data",通常用于提交图片/文件。对应 Content-Type: multipart/form-data

image.png

3. x-www-form-urlencoded

form 表单,对应 Content-Type: application/x-www-from-urlencoded

image.png

4. raw

可以上传任意格式的文本,可以上传 text、json、xml、html 等

image.png

到此这篇关于Spring中@RequestMapping、@RestController和Postman的文章就介绍到这了,更多相关Spring @RequestMapping @RestController Postman内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • SpringBoot使用布隆过滤器解决缓存穿透问题

    SpringBoot使用布隆过滤器解决缓存穿透问题

    缓存穿透是指当缓存系统中无法命中需要的数据时,会直接请求底层存储系统(如数据库),但是如果请求的数据根本不存在,那么大量的请求就会直接穿透缓存层,本文将给大家介绍一下SpringBoot使用布隆过滤器解决缓存穿透问题,需要的朋友可以参考下
    2023-10-10
  • Java并发之传统线程同步通信技术代码详解

    Java并发之传统线程同步通信技术代码详解

    这篇文章主要介绍了Java并发之传统线程同步通信技术代码详解,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • 启动SpringBoot报JavaMail加载错误的原因分析和解决

    启动SpringBoot报JavaMail加载错误的原因分析和解决

    这篇文章给大家介绍了启动SpringBoot报JavaMail加载错误的原因分析和解决,文中通过代码示例给出了详细的原因分析和解决方法,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-01-01
  • MyBatisPlus使用${ew.customSqlSegment}别名问题解决

    MyBatisPlus使用${ew.customSqlSegment}别名问题解决

    在使用MyBatisPlus进行连表查询时,可能遇到因${ew.customSqlSegment}无法加别名的问题,本文就来介绍一下如何解决,感兴趣的可以了解一下
    2024-10-10
  • Java实现ATM系统超全面步骤解读建议收藏

    Java实现ATM系统超全面步骤解读建议收藏

    这篇文章主要为大家详细介绍了用Java实现简单ATM机功能,文中实现流程写的非常清晰全面,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Java获取http和https协议返回的json数据

    Java获取http和https协议返回的json数据

    本篇文章主要介绍了Java获取http和https协议返回的json数据 ,本篇文章提供两个方法,帮助各位如何获取http和https返回的数据。有兴趣的可以了解一下。
    2017-01-01
  • SpringCloud OpenFeign 自定义响应解码器的问题记录

    SpringCloud OpenFeign 自定义响应解码器的问题记录

    我们在使用 Spring Cloud 微服务的时候,通常将返回结果使用一个JsonResult 类进行封装,本文重点介绍SpringCloud OpenFeign 自定义响应解码器的问题记录,感兴趣的朋友跟随小编一起看看吧
    2024-06-06
  • SpringBoot简单的SpringBoot后端实例

    SpringBoot简单的SpringBoot后端实例

    这篇文章主要介绍了SpringBoot简单的SpringBoot后端实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • MyBatis SpringMVC整合实现步骤详解

    MyBatis SpringMVC整合实现步骤详解

    这篇文章主要介绍了MyBatis SpringMVC整合实现步骤详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • Java如何获取属性的注释信息详解

    Java如何获取属性的注释信息详解

    Java注解是从Java5开始添加到Java的,这篇文章主要给大家介绍了关于Java如何获取属性的注释信息的相关资料,文中介绍的非常详细,需要的朋友可以参考下
    2021-07-07

最新评论