当前位置: 首页 > news >正文

用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;}@Overridepublic 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

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

相关文章:

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

前言: 在前面我们已经了解到,Spring Boot项目中,可以传递一个参数,或者多个参数,但是,随着参数的增加,咱们总不能每增加一个参数,就重新写一段代码吧??这样显…...

如何利用ChatGPT搞科研?论文检索、写作、基金润色、数据分析、科研绘图(全球地图、植被图、箱型图、雷达图、玫瑰图、气泡图、森林图等)

以ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diffusion、星火大模型、文心一言、千问为代表AI大语言模型带来了新一波人工智能浪潮,可以面向科研选题、思维导图、数据清洗、统计分析、高级编程、代码调试、算法学习、论文检索、写作、翻译、润色、文献辅助…...

一命通关二分搜索

二分法 简介 和双指针一样,二分法也是一种优化方法,或者说二分法就是双指针的一类。不过,二分法的思想比双指针诞生更早也更广泛,在我们日常生活里也无时不刻在使用二分的思想。 比如我们想回顾某些影片,但是只记得…...

串联所有单词的子串

题目链接 串联所有单词的子串 题目描述 注意点 words[i] 和 s 由小写英文字母组成1 < words.length < 5000可以以 任意顺序 返回答案words中所有字符串长度相同 解答思路 根据滑动窗口哈希表解决本题&#xff0c;哈希表存储words中所有的单词及单词的出现次数&#…...

【会议征稿通知】第四届经济发展与商业文化国际学术会议(ICEDBC2024)

第四届经济发展与商业文化国际学术会议&#xff08;ICEDBC2024&#xff09; The 4th International Conference on Economic Development and Business Culture (ICEDBC 2024) 第四届经济发展与商业文化国际学术会议&#xff08;ICEDBC2024&#xff09;将于2024年6月21-23日在…...

回溯算法套路③排列型回溯+N皇后【基础算法精讲 16】

46 . 全排列 链接 : . - 力扣&#xff08;LeetCode&#xff09; 思路 : 那么怎么确定选了那个数呢? 这里设置一个used表示i选没选过 ; class Solution { public:vector<vector<int>> ans;vector<int> path;void backtrack(vector<int>nums,vect…...

MyBatis-Plus 框架中的自定义元对象处理器

目录 一、代码展示二、代码解读 一、代码展示 package com.minster.yanapi.handler;import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import org.apache.ibatis.reflection.MetaObject; import org.springframework.stereotype.Component;import java.util…...

Node.js_基础知识(fs模块 - 文件操作)

写入 文件操作 流式写入:fs.createWriteStream(path[, options]) 可以减少打开关闭文件的次数适用于:大文件写入、频繁写入参数说明: path:文件路径文件夹操作: 调用mkdir方法:fs.mkdir(./a/b/c, err => {}) 递归创建文件夹:加参数recursive fs.mkdir(./a/b/c, {recu…...

基于C#开发OPC DA客户端——搭建KEPServerEX服务

简介 OPC DA (OLE for Process Control Data Access) 是一种工业自动化领域中的通信协议标准&#xff0c;它定义了应用程序如何访问由OPC服务器提供的过程控制数据。OPC DA标准允许软件应用程序&#xff08;客户端&#xff09;从OPC服务器读取实时数据或向服务器写入数据&…...

让你的函数,返回你需要的“两个值” (函数传址、结构体作为参数传参)

总结&#xff1a;1.结构体完成你的目标 2.指针传参 方法2. void get_a_b(int* a, int* b) { *a 13; *b 14; //通过解引用&#xff0c;找到并修改 } int main() { int a 0; int b 0; get_a_b(&a, &b); //传地址 prin…...

快速上手:在 Android 设备上运行 Pipy

Pipy 作为一个高性能、低资源消耗的可编程代理&#xff0c;通过支持多种计算架构和操作系统&#xff0c;Pipy 确保了它的通用性和灵活性&#xff0c;能够适应不同的部署环境&#xff0c;包括但不限于云环境、边缘计算以及物联网场景。它能够在 X86、ARM64、海光、龙芯、RISC-V …...

【操作系统学习笔记】文件管理1.3

【操作系统学习笔记】文件管理1.3 参考书籍: 王道考研 视频地址: Bilibili I/O 控制方式 程序直接控制方式中断驱动方式DMA 方式通道控制方式 程序直接控制方式 关键词: 轮询 完成一次读/写操作的流程 CPU 向控制器发出读指令。于是设备启动&#xff0c;并且状态寄存器设…...

基于springboot+vue的酒店管理系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…...

Linux 相关命令

文章目录 目录相关操作vim 编辑器命令行模式插入模式底行模式 目录相关操作 查看当前目录下的文件 ls创建目录 mkdir 目录名进入文件&#xff0c;首先确认位于文件的目录 vi 文件名 vim 编辑器 命令行模式 控制光标的移动&#xff0c;字符或行的删除&#xff0c;移动复制某区域…...

阿里云搭建私有docker仓库(学习)

搭建私有云仓库 首先登录后直接在页面搜索栏中搜索“容器镜像服务” 进入后直接选择个人版&#xff08;可以免费使用&#xff09; 选择镜像仓库后创建一个镜像仓库 在创建仓库之前我们先创建一个命名空间 然后可以再创建我们的仓库&#xff0c;可以与我们的github账号进行关联…...

MySQL数据库基本操作(一)

数据库的基本概念 1. 数据库的英文单词&#xff1a; DataBase 简称 &#xff1a; DB 2. 什么数据库&#xff1f;* 用于存储和管理数据的仓库。 ​ 3. 数据库的特点&#xff1a;1. 持久化存储数据的。其实数据库就是一个文件系统2. 方便存储和管理数据3. 使用了统一的方式操作数…...

【暗月安全】2021年渗透测试全套培训视频

参与培训需要遵守国家法律法规&#xff0c;相关知识只做技术研究&#xff0c;请勿用于违法用途&#xff0c;造成任何后果自负与本人无关。 中华人民共和国网络安全法&#xff08;2017 年 6 月 1 日起施行&#xff09; 第二十二条 任何个人和组织不得从事入侵他人网络、干扰他…...

HTML极速入门

HTML基础 什么是HTML HTML(Hyper Text Markup Language),超文本标记语言. 超文本:比文本更强大.通过链接和交互式方式来组织和呈现信息的文本形式.不仅仅有文本,还可能包括图片,音频,或者自己经审阅过它的学者所加的评注,补充或脚注等. 标记语言:由标签构成的语言 HTML的标…...

Django框架——请求与响应

上篇文章我们学习了Django框架——配置文件和视图函数&#xff0c;这篇文章我们学习Django框架——请求与响应。 客户端和服务端的请求与响应过程&#xff1a;客户端访问某个网站并发出URL请求&#xff0c;服务器接受到请求后&#xff0c;根据请求内容来返回响应&#xff0c;如…...

rearrangement-challenge-2022环境使用学习(一)

搭建了rearrangement-challenge-2022的环境&#xff1a; https://github.com/facebookresearch/habitat-challenge/tree/rearrangement-challenge-2022 habitat最大的缺点是对不同的版本非常的敏感。本文只是针对rearrangement-challenge-2022的学习。 文档一开始会很不完善&a…...

如何用5个步骤构建企业级智能SQL工具?自然语言转SQL全攻略

如何用5个步骤构建企业级智能SQL工具&#xff1f;自然语言转SQL全攻略 【免费下载链接】sqlcoder SoTA LLM for converting natural language questions to SQL queries 项目地址: https://gitcode.com/gh_mirrors/sq/sqlcoder 在数据驱动决策的时代&#xff0c;自然语言…...

3个实用技巧让你彻底告别浏览器自动化测试的版本兼容性烦恼

3个实用技巧让你彻底告别浏览器自动化测试的版本兼容性烦恼 【免费下载链接】chrome-for-testing 项目地址: https://gitcode.com/gh_mirrors/ch/chrome-for-testing 还在为Chrome浏览器和ChromeDriver版本不匹配而头疼吗&#xff1f;Chrome for Testing项目正是为了解…...

xianyu_spider:闲鱼电商数据采集与分析解决方案

xianyu_spider&#xff1a;闲鱼电商数据采集与分析解决方案 【免费下载链接】xianyu_spider 闲鱼APP数据爬虫 项目地址: https://gitcode.com/gh_mirrors/xia/xianyu_spider 项目价值定位&#xff1a;破解电商数据采集痛点 在电商数据分析领域&#xff0c;数据采集面临…...

教授专栏204| 潘永安:成功研发新型光探测器,促进可编程光子学应用

港科大电子及计算机工程学系系主任及教授潘永安&#xff08;左&#xff09;丶博士生牛玥&#xff08;右&#xff09;于港科大光子器件实验室合照。可编程光子学利用光传送讯号&#xff0c;能达到比电子学更快丶更节能的运算。然而&#xff0c;现有片上功率监测器的性能不足&…...

Gost透明代理终极指南:实现无感知网络流量转发 [特殊字符]

Gost透明代理终极指南&#xff1a;实现无感知网络流量转发 &#x1f680; Gost透明代理是一种强大的网络流量转发工具&#xff0c;能够实现完全无感知的网络代理体验。作为GO Simple Tunnel项目的核心功能&#xff0c;Gost透明代理让用户无需手动配置每个应用的代理设置&#x…...

QMCDecode:让QQ音乐加密文件重获自由的macOS工具

QMCDecode&#xff1a;让QQ音乐加密文件重获自由的macOS工具 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac&#xff0c;qmc0,qmc3转mp3, mflac,mflac0等转flac)&#xff0c;仅支持macOS&#xff0c;可自动识别到QQ音乐下载目录&#xff0c;默认转换结…...

Qwen3.5-27B入门必看:Web界面操作+curl调用+错误排查全流程

Qwen3.5-27B入门必看&#xff1a;Web界面操作curl调用错误排查全流程 1. 快速了解Qwen3.5-27B Qwen3.5-27B是Qwen官方发布的视觉多模态理解模型&#xff0c;它不仅能够进行文本对话&#xff0c;还能理解图片内容。这个镜像已经在4张RTX 4090 D 24GB显卡的环境下完成部署&…...

M2FP在虚拟试衣间的应用:快速识别人体部位,助力电商设计

M2FP在虚拟试衣间的应用&#xff1a;快速识别人体部位&#xff0c;助力电商设计 1. 虚拟试衣间的技术挑战 在电商领域&#xff0c;虚拟试衣技术正在改变用户的购物体验。传统试衣间面临诸多痛点&#xff1a; 用户无法直观看到服装上身效果退换货率高&#xff0c;增加运营成本…...

会议纪要秒变问答库!WeKnora即时知识系统实战教程

会议纪要秒变问答库&#xff01;WeKnora即时知识系统实战教程 1. 为什么你需要一个"不跑题"的会议助手&#xff1f; 想象这些常见的工作场景&#xff1a; 项目复盘会上&#xff0c;有人问"三个月前那次迭代的排期是怎样的&#xff1f;"&#xff0c;所有…...

成都宠博会的发展历程

1.背景与起源创办背景&#xff1a;随着国内宠物经济的蓬勃发展&#xff0c;成都以其浓厚的宠物文化和“宠物友好城市”的定位&#xff0c;为宠博会的诞生提供了沃土。展会旨在满足中西部地区日益增长的行业交流与消费需求。首届信息&#xff1a;根据文档提及的“从2012年到2025…...