不定参数入参

本文涉及的产品
RDS AI 助手,专业版
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 本文介绍了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注意力机制(涨点明显)
9667 1
|
Java 开发者 微服务
Java企业应用软件系统架构演变史
Java企业应用软件系统架构演变史
374 0
|
4月前
|
人工智能 弹性计算 机器人
2026年阿里云五种方案快速部署 OpenClaw(Clawdbot)详细教程
OpenClaw(原Clawdbot/Moltbot)是一款开源、本地优先的AI智能代理平台,支持自然语言控制设备、对接Qwen/GPT/Claude等大模型,具备持久记忆与跨平台通信能力。阿里云2026年推出5种零基础部署方案,覆盖个人到企业全场景,最快5分钟上线专属AI助理。
762 5
|
8月前
|
存储 JSON 安全
加密和解密函数的具体实现代码
加密和解密函数的具体实现代码
1174 136
|
5月前
|
存储 弹性计算 安全
阿里云轻量应用服务器为什么卖得好?价格优惠、大带宽、性能稳定,个人及中小企业上云首选!
阿里云轻量应用服务器凭38元/年起超值价格、200Mbps大带宽、开箱即用(预装WordPress等)及ECS同源稳定架构,成为个人与中小企业上云首选,真正实现“便宜、好用、不折腾”。
359 12
GROMACS运行参数之npt.mdp文件详解
GROMACS运行参数之npt.mdp文件详解
1440 0
|
消息中间件 存储 NoSQL
消息队列的对比及适配的应用场景
消息队列的对比及适配的应用场景
757 0
|
监控 Cloud Native Java
传统应用的“云”端新生——Quarkus迁移全攻略
随着云计算的发展,传统单体应用逐渐显现出扩展性和维护成本等问题,而云原生应用因轻量、高效成为新宠。Quarkus作为一款高性能的云原生Java框架,正吸引越来越多开发者。本文详细介绍将传统应用迁移至Quarkus的步骤,包括全面评估、环境搭建、代码重构、数据库迁移、安全性与监控设置,以及测试和部署。通过这些步骤,您可以顺利实现应用的云原生化,享受其带来的诸多优势。
409 3