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!");
    }
相关推荐
wangbing11253 分钟前
踩坑:el8应用装在el9上
开发语言·后端·ruby
苍煜6 分钟前
RocketMQ系列第三篇:Java原生基础使用实操,手把手写生产者消费者Demo
java·rocketmq·java-rocketmq
Andya_net44 分钟前
Java | Java内存模型JMM
java·开发语言
froginwe111 小时前
SQL LIKE 操作符详解
开发语言
182******20831 小时前
2026年java后端还有机会吗?还能找到工作吗?
java·开发语言
kyriewen111 小时前
你等的Babel编译,够喝三杯咖啡了——用Rust重写的SWC,只需眨个眼
开发语言·前端·javascript·后端·性能优化·rust·前端框架
CSCN新手听安1 小时前
【Qt】Qt窗口(八)QFontDialog字体对话框,QInputDialog输入对话框的使用,小结
开发语言·c++·qt
XS0301061 小时前
Java基础 map集合
java·哈希算法·散列表
tumu_C2 小时前
用std::function减缓C++模板代码膨胀和编译压力的一个场景
开发语言·c++
Komorebi_99992 小时前
大模型学习day5
学习·大模型