目录

第一种:直接在方法中指定参数

第二种:使用@requesrParam注解

第三种方法:基于@pathVariable

第四种方法:基于@ResquestBody

在开始之前,我们需要一下准备工作,创建数据库,springboot工程,添加依赖,配置文件,使用的技术有mybatisplus,springboot,maven,mysql。

首先,数据库建表

然后,建立一个springboot项目,导入相关依赖,编写相关配置

其中,maven相关依赖

application.yml配置文件,我使用了mybatisplus,使用需要相关的依赖和配置

为了便于前后端交互,我使用了json进行前后端数据传递,由Java后端进行数据封装

该项目包结构如图所示

好了,到这里准备工作已经基本完成,我们来探究后端如何接收前端给我们的参数

第一种:直接在方法中指定参数

我们在UserController中编写一个方法,通过用户名和密码得到一个user对象

在接口中添加方法,在实现类中重写

使用apifox进行测试,可以看到我们已经得到了返回结果

我们在UserController中使用了日志记录了查询过程,可以看到在控制台输出了username,说明我们已经得到了这个参数,但是该方法有有几个缺陷,一是我们在apifox中body中参数要一一对应,username和password的位置不能错,二是参数名称必需一致,如果不同则不能接收到该参数。

那么显然,这种接收参数的方法有很多缺陷,所以我们需要去改进。

第二种:使用@requesrParam注解

该方法解决了第一种方法的缺点,不需要参数一一对应,也不需要名称一致,在注解里面,可以随意填写任意名称,都可以对应。

第三种方法:基于@pathVariable

我们只需要在请求路径上添加参数,但是注意,路径上添加的参数需要用括号拼接,且和方法内对应的参数名称要相同。

第四种方法:基于@ResquestBody

该注解使用频率最高,可以将参数自动封装为一个对象

用@ResquestBody封装的对象,我们可以完整的保留user对象中对应的所有属性,未赋值的属性对应为空,且可以通过set,get方法对对象进行修改赋值和提取。