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!");
    }
相关推荐
Suxing96 分钟前
C语言基础分享:从“租房”到“拆迁”,C语言动态内存管理
java·数据结构·算法
减瓦8 分钟前
别让 Java 版本选择变成生产事故
java
ikun_文8 分钟前
Java集合框架Collection拓展进阶
java·java ee
SomeB1oody17 分钟前
【RustyML入门】3.8. 正则化与归一化层
开发语言·后端·机器学习·rust·教程
__zRainy__21 分钟前
Node系列 · Node基础:全局变量与全局对象
开发语言·前端·javascript
码匠许师傅22 分钟前
【C++ 面试真题】聊聊 C++ 的虚函数和多态
java·c++·面试
peijiping27 分钟前
Agent 工具执行:并行(parallel_tool_calls)和后台(run_in_background)到底有什么区别? (学习笔记)
笔记·学习·ai agent·claude code
何事误红尘32 分钟前
KF32A学习笔记(二):IDE基本使用、srec和hex格式、FreeRTOS移植
学习
chuan.bai1 小时前
Java RAG 实战(第 8 篇):Spring Boot RAG 查询 API
java·spring boot·贪心算法
FlyWIHTSKY1 小时前
idea中集成claude功能
java·ide·人工智能·intellij-idea·cloudera