用Java在Spring Boot项目中,如何传递来传递一个对象(多个参数??

前言:

在前面我们已经了解到,Spring Boot项目中,可以传递一个参数,或者多个参数,但是,随着参数的增加,咱们总不能每增加一个参数,就重新写一段代码吧??这样显得很是臃肿,因此,我们可以将多个参数封装成一个对象来进行传递,每当增加一个参数的时候,就在对象里面增加一个属性,并重写Setter ,getter ,toString方法等操作来简化代码!这样就显得很简单方便操作了!

假设这是我们一开始的代码:

复制代码
@RestController
@RequestMapping("/param")
public class ParamController {

    @RequestMapping("/m1")
    public String m1(String name){
        return "这是你的姓名:"+name;
    }

}

当我们不仅仅满足一个name属性的时候,开始增加一个参数id,那么此时的代码可以为:

复制代码
@RestController
@RequestMapping("/param")
public class ParamController {

    @RequestMapping("/m1")
    public String m1(String name){
        return "这是你的姓名:"+name;
    }

    @RequestMapping("/m2")
    public String m2(String name,Integer id){
        return "序列号为:"+ id +"这是你的姓名:"+name;
    }

}

问题:

当我们不仅仅满足一个name和id属性的时候,开始增加一个参数age,那么此时我们就得思考一下了,如果只是这么几个属性的话,简单的增加是没啥问题的,但是,当属性越来越多(成百上千)的话,我们又该如何处理?是一直这么写下去吗?这得显得多么臃肿啊!显得不是很美观!!

解决方案:

那么,正确的做法(首推)为:创建一个对象,并重写Setter ,getter ,toString方法等

假设,创建一个Person类:

复制代码
//将参数封装为对象
public class Person {
    Integer id;
    String name;
    Integer age;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Person{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

此时,我们在Spring Boot项目中来进行传递的时候,便可以将Person对象传入即可!

复制代码
    //将Person对象传入
    @RequestMapping("/m3")
    public String m3(Person person){
        return " 接收到的参数:Person:"+person.toString();
    }

重写启动程序:

在浏览器中输入:localhost:8080/param/m3

当我们对其中某个参数赋值的时候:localhost:8080/param/m3?id=10&name=zhangsan

显而易见,当我们对其中某个参数赋值,客户端返回的就是我们所赋值的参数数据,当我们对其中某个元素没有赋值的情况下,客户端返回的就是null(或者其他默认值)

当然,我们也可以用Postman来操作一下:

在没有参数传入的时候:http://localhost:8080/param/m3

在只传入某个参数的时候:

相关推荐
章鱼哥7302 分钟前
Java 策略模式 + 聚合对象:实现多模块的统计与聚合,快速扩展的实战
java·开发语言·策略模式
是店小二呀6 分钟前
openGauss进阶:使用DBeaver可视化管理与实战
开发语言·人工智能·yolo
万粉变现经纪人9 分钟前
如何解决 pip install 编译报错 ‘cl.exe’ not found(缺少 VS C++ 工具集)问题
开发语言·c++·人工智能·python·pycharm·bug·pip
U***e6315 分钟前
JavaScript数据分析
开发语言·javascript·数据分析
h***593330 分钟前
SpringBoot中如何手动开启事务
java·spring boot·spring
q_191328469531 分钟前
基于SpringBoot2+Vue2的宠物健康医疗论坛系统
vue.js·spring boot·mysql·健康医疗·宠物·计算机毕业设计
倚肆37 分钟前
Java泛型详解:尖括号<>、通配符?与类型参数T
java
韩风66641 分钟前
雪花id改多workerID依赖redis
java
BD_Marathon42 分钟前
Eclipse 代码自动补全设置
android·java·eclipse
L.EscaRC1 小时前
深入解析SpringBoot中的循环依赖机制与解决方案
java·spring boot·spring·循环依赖