
后端的第一天感觉难度就上来了,可能是基础太过薄弱了吧。目前看视频已经有点跟不上了,果然15天想要拿下还是太勉强了点。30天还差不多。不知道读者们有没有好好的去学这方面的知识,没有什么是学不会的,关键是坚持。
Postman这款应用一定要好好的去熟悉一下,挺重要的。
明天试着做一下综合案例,ヾ(◍°∇°◍)ノ゙。
Postman 是一个流行的 API 开发工具,主要用于测试、调试和管理 API。它提供了一个用户友好的界面,使开发者能够轻松地发送 HTTP 请求、查看响应以及分析请求的结果。以下是 Postman 的主要特点和功能:
发送 HTTP 请求:
组织和管理请求:
自动化测试:
环境和变量:
实时调试:
协作与分享:
集成其他工具:
Postman API Platform | Sign Up for Free


温馨提示:此部分只进行代码上的讲解,方法部分在全套源代码中。
//1.简单实体参数
@RequestMapping("/simpleParam")
public String simpleParam(String name,int age) {
System.out.println(name+":"+age);
return "OK";
}注解 @RequestMapping:
@RequestMapping("/simpleParam") 指定了处理的 URL 路径为 "/simpleParam"。当有请求到达这个路径时,Spring MVC 将调用 simpleParam 方法来处理请求。方法签名:
public String simpleParam(String name, int age) 是控制器方法的签名。它接收两个参数:name(String 类型)和 age(int 类型)。方法体:
System.out.println(name+":"+age); 打印接收到的 name 和 age 参数值到控制台。参数绑定:
/simpleParam,并且请求参数为 name=John 和 age=30,那么 Spring MVC 将自动将 name 绑定为 "John",将 age 绑定为整数 30。返回值:

//2.复杂实体参数
@RequestMapping("/complacePojo")
public String complacePojo(user user){
System.out.println(user);
return "OK";
}1.@RequestMapping("/complacePojo") 指定了处理的 URL 路径为 "/complacePojo"。当有请求到达这个路径时,Spring MVC 将调用 complacePojo 方法来处理请求。2.public String complacePojo(user user) 是控制器方法的签名。它接收一个名为 user 的参数,类型为 user。这里的 user 可能是一个自定义的 Java Bean 类,用于封装用户提交的数据。System.out.println(user); 打印接收到的 user 对象到控制台。然后方法返回字符串 "OK"。
user 类的属性进行自动绑定。例如,如果请求提交了 user 对象的属性 name 和 age,Spring MVC 将会尝试将这些值设置到 user 对象的对应属性上。
//3.数组参数
@RequestMapping("/arrayParam")
public String arrayParam(String[]hobby){
System.out.println(Arrays.toString(hobby));
return "OK";
}public String arrayParam(String[] hobby) 是控制器方法的签名。它接收一个名为 hobby 的参数,类型为 String[]。这表示它可以接收一个名为 hobby 的数组作为 HTTP 请求的参数。System.out.println(Arrays.toString(hobby)); 打印接收到的 hobby 数组内容到控制台。这行代码将数组转换为字符串形式并输出,以便查看实际接收到的数据。hobby 数组上。例如,如果请求中包含多个名为 hobby 的参数(如 hobby=reading、hobby=traveling),Spring MVC 将会将这些值存储在 hobby 数组中。注意事项:
确保请求中的参数命名正确,并且与方法参数的名称相匹配。Spring MVC 将根据参数名进行自动绑定,因此名称不匹配可能导致绑定失败或错误的数据处理。

//4.集合传参
@RequestMapping("/ListParam")
public String ListParam(@RequestParam List<String>hobby){
System.out.println(hobby);
return "OK";
}public String ListParam(@RequestParam List<String> hobby) 是控制器方法的签名。它接收一个名为 hobby 的参数,类型为 List<String>。使用 @RequestParam 注解明确指定了要从请求中获取的参数名为 hobby。hobby 的参数的多个值绑定到 hobby 列表中。例如,如果请求中包含多个 hobby 参数(如 hobby=reading&hobby=traveling),Spring MVC 将这些值存储在 hobby 列表中。List<String> 类型,Spring MVC 能够直接将这些值绑定到列表中。
//5.日期时间传参
@RequestMapping("/dateParam")
public String dateParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime updateTime){
System.out.println(updateTime);
return "OK";
}public String dateParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime updateTime) 是控制器方法的签名。它接收一个名为 updateTime 的参数,类型为 LocalDateTime。使用 @DateTimeFormat 注解指定了日期时间的格式为 "yyyy-MM-dd HH:mm:ss",以便正确解析请求中的日期时间字符串。LocalDateTime 对象,并将其传递给 updateTime 参数。注意事项:
确保请求中的日期时间字符串格式与指定的 @DateTimeFormat 注解中的格式相匹配,否则会导致解析失败或者获得不正确的数据。

//6.Json参数
@RequestMapping("/jsonParam")
public String jsonParam(@RequestBody user user){
System.out.println(user);
return "OK";
}public String jsonParam(@RequestBody user user) 是控制器方法的签名。它使用 @RequestBody 注解来指示 Spring MVC 从请求体中获取 JSON 数据,并尝试将其转换为 user 对象。这里的 user 类型是自定义的,通常应该包含与请求体 JSON 结构相匹配的字段。@RequestBody 注解告诉 Spring MVC 从 HTTP 请求的主体中提取数据,并尝试将其转换为 user 对象。Spring MVC 使用默认的 JSON 转换器(通常是 Jackson)来完成从 JSON 到 Java 对象的反序列化过程。注意事项:
确保请求的 JSON 结构与 user 对象的字段名和类型相匹配,否则反序列化可能会失败或者得到不正确的数据。
user 类型必须有默认的无参构造函数,以便 JSON 反序列化库可以实例化对象。

//7.单个路径参数
@RequestMapping("/pathParam/{id}")
public String pathParam(@PathVariable int id){
System.out.println(id);
return "OK";
}@RequestMapping("/pathParam/{id}") 指定了处理的 URL 路径为 "/pathParam/{id}"。{id} 是一个占位符,表示这个路径可以接受一个名为 id 的变量作为参数。当有符合这个路径的 GET 请求到达时,Spring MVC 将调用 pathParam 方法来处理请求。@PathVariable int id 注解在方法参数上,指示 Spring MVC 将 URL 中的 {id} 值映射到方法的 id 参数上。在这个例子中,Spring MVC 将提取路径中的 id 值,并将其转换为 int 类型,然后传递给方法 pathParam。{id},将其解析为方法参数 id。这使得我们可以在路径中传递参数,而不是在请求体或查询参数中传递。注意事项:
确保路径中的变量名 {id} 与 @PathVariable 注解中的参数名 id 保持一致,以确保正确的参数绑定。
如果路径参数类型不匹配(例如路径中是数字,但方法参数是字符串),Spring MVC 可能会抛出类型转换错误或者返回 404 错误。

//8.多个路径参数
@RequestMapping("pathParam2/{id}/{name}")
public String pathParam2(@PathVariable int id,@PathVariable String name){
System.out.println(id+":"+name);
return "OK";
}基本原理和单个路径大致相同
注意事项:
确保路径中的变量名 {id} 和 {name} 与 @PathVariable 注解中的参数名 id 和 name 保持一致,以确保正确的参数绑定。

一般应用的时候为了防止太过混乱,会有一个统一的标准,因为只是认识,所以在这里就不介绍了,想要了解的读者可以去看源代码。里面包含这一部分。
//9.字符串
@RequestMapping("/strParam")
public String strParam(){
System.out.println("Hello World");
return "OK";
}System.out.println("Hello World"); 这行代码会在控制台打印输出 "Hello World"。它用于在方法被调用时输出一条消息到控制台,这在调试和跟踪代码执行流程时非常有用。
//10.数组
@RequestMapping("/arrParam")
public Address arrParam(){
Address address = new Address();
address.setProvince("河南");
address.setCity("郑州");
return address;
}Address address = new Address(); 创建了一个 Address 对象,假设这是一个自定义的 Java 类,用来表示地址信息。address.setProvince("河南"); 设置地址对象的省份为 "河南"。address.setCity("郑州"); 设置地址对象的城市为 "郑州"。return address; 返回这个填充了省份和城市信息的 Address 对象。Address 对象。在 Spring MVC 中,如果方法返回的是一个对象,Spring MVC 会自动将其转换为 JSON 格式(默认情况下),并作为 HTTP 响应体返回给客户端。/arrParam 路径,并获取到 JSON 格式的地址信息。Address 类必须是可序列化的,并且通常需要正确实现 toString()、equals() 和 hashCode() 方法,以便在转换为 JSON 格式时能够正确工作。
//11.集合
@RequestMapping("/listParam")
public List<Address> listParam(){
List<Address> list = new ArrayList<>();
Address address = new Address();
address.setProvince("山东");
address.setCity("菏泽");
Address address1 = new Address();
address1.setProvince("陕西");
address1.setCity("西安");
list.add(address);
list.add(address1);
return list;
}List<Address> list = new ArrayList<>(); 创建了一个 ArrayList 对象 list,用来存储 Address 对象。Address 对象 address 和 address1,分别代表不同的地址信息。address 的省份设置为 "山东",城市设置为 "菏泽"。address1 的省份设置为 "陕西",城市设置为 "西安"。list.add(address); 将 address 对象添加到 list 列表中。list.add(address1); 将 address1 对象添加到 list 列表中。List<Address> 对象,即包含两个填充了省份和城市信息的 Address 对象的列表。在 Spring MVC 中,这些对象会被自动转换为 JSON 数组格式,并作为 HTTP 响应体返回给客户端。

package com.von.demo5;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.*;
import pojo.Address;
import pojo.user;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List;
//请求处理类
@RestController
public class text1 {
//springboot方式请求
//1.简单实体参数
@RequestMapping("/simpleParam")
public String simpleParam(String name,int age) {
System.out.println(name+":"+age);
return "OK";
}
//2.复杂实体参数
@RequestMapping("/complacePojo")
public String complacePojo(user user){
System.out.println(user);
return "OK";
}
//3.数组参数
@RequestMapping("/arrayParam")
public String arrayParam(String[]hobby){
System.out.println(Arrays.toString(hobby));
return "OK";
}
//4.集合传参
@RequestMapping("/ListParam")
public String ListParam(@RequestParam List<String>hobby){
System.out.println(hobby);
return "OK";
}
//5.日期时间传参
@RequestMapping("/dateParam")
public String dateParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime updateTime){
System.out.println(updateTime);
return "OK";
}
//6.Json参数
@RequestMapping("/jsonParam")
public String jsonParam(@RequestBody user user){
System.out.println(user);
return "OK";
}
//7.单个路径参数
@RequestMapping("/pathParam/{id}")
public String pathParam(@PathVariable int id){
System.out.println(id);
return "OK";
}
//8.多个路径参数
@RequestMapping("pathParam2/{id}/{name}")
public String pathParam2(@PathVariable int id,@PathVariable String name){
System.out.println(id+":"+name);
return "OK";
}
}package com.von.demo5;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import pojo.Address;
import java.util.ArrayList;
import java.util.List;
@RestController
public class text2 {
//测试响应数据
//9.字符串
@RequestMapping("/strParam")
public String strParam(){
System.out.println("Hello World");
return "OK";
}
//10.数组
@RequestMapping("/arrParam")
public Address arrParam(){
Address address = new Address();
address.setProvince("河南");
address.setCity("郑州");
return address;
}
//11.集合
@RequestMapping("/listParam")
public List<Address> listParam(){
List<Address> list = new ArrayList<>();
Address address = new Address();
address.setProvince("山东");
address.setCity("菏泽");
Address address1 = new Address();
address1.setProvince("陕西");
address1.setCity("西安");
list.add(address);
list.add(address1);
return list;
}
}package com.von.demo5;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import pojo.Address;
import pojo.Result;
import java.util.ArrayList;
import java.util.List;
@RestController
public class text3 {
//使用result规范管理响应数据
//9.字符串
@RequestMapping("/strParam")
public Result strParam(){
System.out.println("Hello World");
return Result.success("Hello World");
}
//10.数组
@RequestMapping("/arrParam")
public Result arrParam(){
Address address = new Address();
address.setProvince("河南");
address.setCity("郑州");
return Result.success(address);
}
//11.集合
@RequestMapping("/listParam")
public Result listParam(){
List<Address> list = new ArrayList<>();
Address address = new Address();
address.setProvince("山东");
address.setCity("菏泽");
Address address1 = new Address();
address1.setProvince("陕西");
address1.setCity("西安");
list.add(address);
list.add(address1);
return Result.success(list);
}
}package pojo;
public class Address {
private String province;
private String city;
@Override
public String toString() {
return "Address{" +
"province='" + province + '\'' +
", city='" + city + '\'' +
'}';
}
public String getProvince() {
return province;
}
public void setProvince(String province) {
this.province = province;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
}package pojo;
public class Result {
private int code;//1代表成功,0代表失败
private String msg;//提示信息
private Object data;//数据data
public Result() {
}
public Result(int code, String msg, Object data) {
this.code = code;
this.msg = msg;
this.data = data;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
public static Result success(Object data) {
return new Result(1, "success", data);
}
public static Result success() {
return new Result(1, "success", null);
}
public static Result error(String msg) {
return new Result(0, msg, null);
}
@Override
public String toString() {
return "Result{" +
"code=" + code +
", msg='" + msg + '\'' +
", data=" + data +
'}';
}
}package pojo;
public class user {
private String name;
private int age;
private Address address;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
@Override
public String toString() {
return "user{" +
"name='" + name + '\'' +
", age=" + age +
", address=" + address +
'}';
}
}