不定参数入参

简介: 本文介绍了Spring Boot中Controller层接收参数的多种方式,包括非JSON格式(如@RequestBody、@RequestParam)和JSON格式入参(如JSONObject、封装对象)。支持单个参数、多参数及对象封装形式,并结合@Valid实现参数校验,提升接口安全性与代码可维护性。

1.非JSON格式入参
Java
运行代码
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@PostMapping(value = "/init", produces = MediaType.APPLICATION_JSON_VALUE)
public ResultDTO initDoctorConfig(@Valid User param) {
do something...
}

@PostMapping(value = "/init", produces = MediaType.APPLICATION_JSON_VALUE)
public ResultDTO initDoctorConfig(int id) {
    do something...
}

@PostMapping(value = "/init", produces = MediaType.APPLICATION_JSON_VALUE)
public ResultDTO initDoctorConfig(@RequestParam int id) {
    do something...
}

@PostMapping(value = "/init", produces = MediaType.APPLICATION_JSON_VALUE)
public ResultDTO initDoctorConfig(@RequestBody int id) {
   do something...
}

2.JSON入参
2.1 单个或多个独立参数
Java
运行代码
复制代码
1
2
3
4
5
@PostMapping(value = "/order/detail", produces = MediaType.APPLICATION_JSON_VALUE)
public ResultDTO getInfo(@RequestBody JSONObject jsonParams) {
long id = jsonParams.getLong("id");
String name = jsonParams.getString("name");
}
2.2 封装参数
Java
运行代码
复制代码
1
2
3
4
@PostMapping(value = "/init", produces = MediaType.APPLICATION_JSON_VALUE)
public ResultDTO initConfig(@Valid @RequestBody RequestParam param) {
return initService.initConfig(param);
}
其中封装入参对象就是一个包含各入参函数对象的Object
这里同步做了数据校验,可忽略也可在其项目参考,其中包资源
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
Java
运行代码
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
@Data
public class RequestParam {

private long id;

@NotBlank(message = "姓名不能为空")
private String name;

@NotBlank(message = "年龄不能为空")
private String age;

}

相关文章
|
机器学习/深度学习 计算机视觉 网络架构
改进YOLOv8:添加CBAM注意力机制(涨点明显)
改进YOLOv8:添加CBAM注意力机制(涨点明显)
10049 1
|
7月前
|
并行计算 编译器 C++
C++在科学计算与高性能计算中的应用——超级计算机的引擎
科学计算与高性能计算是推动人类科技前沿的关键力量——气候模拟、基因测序、天体物理、量子化学、流体力学、人工智能训练,这些领域都需要海量的计算能力。C++凭借其极致性能和并行编程能力,成为高性能计算领域的首选语言。本文将深入探讨C++在科学计算中的应用。
450 3
|
4月前
|
缓存 安全 Windows
电脑开关机、运行卡顿! 科学清理 C 盘释放存储空间实用妙招!
电脑C盘爆红、卡顿、软件闪退?本文提供一套安全、高效、可长期维护的C盘清理流程,从基础清理到系统优化,再到专业工具深度处理,新手也能轻松上手,一次性释放大量空间,让电脑重回流畅状态
|
5月前
|
弹性计算 小程序 API
外卖点餐系统开发:对接分账链,实现自动、灵活、合规分账
在外卖点餐系统(含小程序、APP、H5)开发中,支付分账是核心刚需,也是合规重灾区。典型场景里,一笔订单资金需拆分给商家(餐费)、骑手(配送费)、平台(服务费)、区域代理 / 品牌方(佣金) 等多方。随着监管收紧,央行 217 号文、市场监管总局外卖平台新规明确禁止 “二清”(无支付牌照归集资金后二次结算),违规平台面临50 万元以上罚款、暂停业务等处罚。而分账链分账系统却可以完美化解问题,为平台降本增效。
650 3
|
7月前
|
人工智能 自然语言处理 API
阿里云计算巢部署OpenClaw|iMessage一键接入+千问/Coding Plan API+避坑指南
2026年,AI自动化框架OpenClaw(原Clawdbot)凭借阿里云计算巢一键部署、云端稳定运行与iMessage深度集成能力,成为连接苹果生态与云端AI的核心工具。计算巢提供官方认证的OpenClaw部署模板,无需手动配置环境,5分钟即可完成云端部署;搭配阿里云千问大模型、免费Coding Plan API,再通过iMessage渠道实现iPhone、Mac、iPad与云端AI的无缝交互,满足个人效率管理、移动AI助手、轻量业务开发等场景需求。
624 2
|
7月前
|
人工智能 弹性计算 自然语言处理
9.9元定制专属AI员工:阿里云OpenClaw三步极速部署指南
OpenClaw(原Clawdbot/Moltbot)是开源AI智能体,主打“能动手、会干活”:理解自然语言指令,自动执行文件处理、日程管理、跨应用协同等任务。依托阿里云轻量服务器,新用户首月仅9.9元,10分钟零代码部署专属7×24小时数字员工。
632 4
|
存储 JSON 安全
加密和解密函数的具体实现代码
加密和解密函数的具体实现代码
1428 137
|
8月前
|
人工智能 弹性计算 机器人
2026年阿里云五种方案快速部署 OpenClaw(Clawdbot)详细教程
OpenClaw(原Clawdbot/Moltbot)是一款开源、本地优先的AI智能代理平台,支持自然语言控制设备、对接Qwen/GPT/Claude等大模型,具备持久记忆与跨平台通信能力。阿里云2026年推出5种零基础部署方案,覆盖个人到企业全场景,最快5分钟上线专属AI助理。
950 5
|
8月前
|
数据库 对象存储
2026年 | 2月云大使推广奖励规则
云大使推广返利活动,新增后付费产品返利最高返利45%。企业新用户下单返佣加码5%。新老用户都可参与返利活动。