目录
第一种:直接在方法中指定参数
第二种:使用@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方法对对象进行修改赋值和提取。