用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

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

相关推荐
于先生吖11 分钟前
国际语言适配拼车系统 JAVA 后端源码 + 同城顺风车功能全解析
java·开发语言
ID_1800790547318 分钟前
超详细:Python 调用淘宝商品详情 API 完整教程
开发语言·python
czlczl2002092520 分钟前
KRaft原理
java·zookeeper
小恶魔巴巴塔28 分钟前
C语言避免头文件循环
c语言·开发语言
西西学代码31 分钟前
Flutter---构造函数
开发语言·javascript·flutter
计算机安禾1 小时前
【数据结构与算法】第10篇:项目实战:学生信息管理系统(线性表版)
开发语言·数据结构·算法·visual studio
MyBFuture1 小时前
Halcon模板匹配核心技术解析大全
开发语言·人工智能·计算机视觉·halcon·机器视觉
毕设源码-朱学姐1 小时前
【开题答辩全过程】以 基于SSM的宜佳家具电商平台为例,包含答辩的问题和答案
java
精神小伙就是猛1 小时前
使用go-zero快速搭建一个微服务(一)
开发语言·后端·微服务·golang
不会聊天真君6471 小时前
基础语法·下(golang笔记第三期)
开发语言·笔记·golang