Java SpringBoot学习记录(4)

2.3 SpringBoot Web请求响应 数组集合参数:

学习视频链接:Day05-04. 请求响应-请求-数组集合参数_哔哩哔哩_bilibili

数组参数:请求参数名与形参数组名称相同且请求参数为多个,定义数组类型形参即可接收参数

传递参数的url举例: http://localhost:8080/arrayParam?hobby=sing&hobby=football

集合参数:请求参数名与形参集合名称相同且请求参数为多个,@RequestParam绑定参数关系

传递参数的url举例: http://localhost:8080/listParam?hobby=sing&hobby=football

2.4 SpringBoot Web请求响应 日期参数和json参数:

学习视频链接:Day05-05. 请求响应-请求-日期参数&json参数_哔哩哔哩_bilibili

日期参数:使用@DateTimeFormat注解完成日期参数格式转换

传递参数的url举例: http://localhost:8080/dateParam?2026-04-15 13:00:00

JSON参数:JSON数据键名与形参对象属性名相同,定义POJO类型形参即可接收参数,需要使用@RequestBody标识

测试传递对象设置如下:

由于json格式比较复杂,我们通常选择Post方式而非像前面选择Get方式并且修改url来进行传参。

2.5 SpringBoot Web请求响应 路径参数:

学习视频链接:Day05-06. 请求响应-请求-路径参数_哔哩哔哩_bilibili

路径参数:通过请求URL直接传递参数,使用...来标识该路径参数,需要使用@PathVariable获取路径参数

传递参数的url举例: http://localhost:8080/path/1(当id=1时)

传递多个路径参数的举例:

传递参数的url举例: http://localhost:8080/path/1/Tom(当id=1,name=Tom时)

2.6 SpringBoot Web请求响应 @ResponseBody和统一响应结果:

学习视频链接:Day05-07. 请求响应-响应-@ResponseBody&统一响应结果_哔哩哔哩_bilibili

@ResponseBody

1.返回值是字符串:

java 复制代码
@RequestMapping("/hello")
    public String hello() {
        System.out.println("hello world");
        return "Hello World";
    }

结果:

2.返回值是对象:

java 复制代码
@RequestMapping("/getAddr")
    public Address getAddr() {
        Address address = new Address();
        address.setProvince("zhejiang");
        address.setCity("hangzhou");
        System.out.println(address);
        return address;
    }

结果:

3.返回值是集合:

java 复制代码
@RequestMapping("/listAddr")
    public List<Address> listAddr() {
        List<Address> list = new ArrayList<>();

        Address address1 = new Address();
        address1.setProvince("zhejiang");
        address1.setCity("hangzhou");

        Address address2 = new Address();
        address2.setProvince("jiangsu");
        address2.setCity("nanjing");

        System.out.println(address1);
        System.out.println(address2);

        list.add(address1);
        list.add(address2);
        return list;
    }

结果:

统一响应结果:

通过右图的result实体对象接收响应,让项目管理维护更加便利,

result.java完整内容如下:

java 复制代码
package com.example.springboot_web.pojo;

public class Result {
    private int code;
    private String msg;
    private Object 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{" +
                "data=" + data +
                ", msg='" + msg + '\'' +
                ", code=" + code +
                '}';
    }
}

统一响应结果举例(controller代码和结果截图):

java 复制代码
 @RequestMapping("/hello")
    public Result hello() {
        System.out.println("hello world");
        return Result.success("hello world!");
    }
相关推荐
旖旎夜光3 分钟前
【LangGraph实战】LangGraph 学习笔记(四):持久化——从线程记忆到跨会话长期记忆
人工智能·笔记·python·学习·ai编程·langgraph
dishugj17 分钟前
HANA集群计划内切换与维护操作
java·linux·数据库
kdxiaojie19 分钟前
MPU6050学习
笔记·学习·mpu6050
yuniko-n20 分钟前
【JUC】线程间通信
java·开发语言
yuniko-n22 分钟前
【JUC】关于 Java 线程介绍
java·开发语言
HelloWorld工程师26 分钟前
@Primary 注解
java·spring
geovindu33 分钟前
rust: Borg Pattern(续)
开发语言·后端·设计模式·rust·博格模式
aqiu1111112 小时前
【C++算法打怪专栏】8. 字符串转换整数 (atoi)
开发语言·c++·算法
爱吃香菜的初学者2 小时前
十四.Linux——消息队列
linux·运维·开发语言
迅猛龙办公室3 小时前
python实现倒序输出数字
开发语言·python