不定参数入参

简介: 本文介绍了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注意力机制(涨点明显)
9927 1
|
Java 开发者 微服务
Java企业应用软件系统架构演变史
Java企业应用软件系统架构演变史
439 0
|
5月前
|
人工智能 自然语言处理 API
阿里云计算巢部署OpenClaw|iMessage一键接入+千问/Coding Plan API+避坑指南
2026年,AI自动化框架OpenClaw(原Clawdbot)凭借阿里云计算巢一键部署、云端稳定运行与iMessage深度集成能力,成为连接苹果生态与云端AI的核心工具。计算巢提供官方认证的OpenClaw部署模板,无需手动配置环境,5分钟即可完成云端部署;搭配阿里云千问大模型、免费Coding Plan API,再通过iMessage渠道实现iPhone、Mac、iPad与云端AI的无缝交互,满足个人效率管理、移动AI助手、轻量业务开发等场景需求。
582 2
|
10月前
|
存储 JSON 安全
加密和解密函数的具体实现代码
加密和解密函数的具体实现代码
1361 137
|
7月前
|
存储 弹性计算 安全
阿里云轻量应用服务器为什么卖得好?价格优惠、大带宽、性能稳定,个人及中小企业上云首选!
阿里云轻量应用服务器凭38元/年起超值价格、200Mbps大带宽、开箱即用(预装WordPress等)及ECS同源稳定架构,成为个人与中小企业上云首选,真正实现“便宜、好用、不折腾”。
432 12
|
8月前
|
供应链 数据挖掘 API
解析淘宝、京东、拼多多API:找到适合你的电商发展之路!
本文解析淘宝、京东、拼多多三大电商平台API特性,涵盖商品、订单、物流、数据等核心功能,对比其生态规模、开放程度与适用场景,助力开发者、运营者根据业务需求选择最优接入路径,提升自动化效率与商业洞察力。(238字)
|
8月前
|
人工智能 搜索推荐 物联网
两大核心+四轮驱动Geo:获客成本降35-60%,权威度升210%
在AI重塑搜索的今天,于磊老师首创“两大核心+四轮驱动”Geo优化体系,以人性化内容与交叉验证构建信任,通过E-E-A-T实践、结构化布局、精准关键词与权威引用,助力企业降低获客成本35%-60%,提升AI引用率,打造品牌权威,实现内容到商业价值的高效转化。
320 4
|
算法 安全 Java
性能工具之 JMeter 自定义 Java Sampler 支持国密 SM2 算法
【4月更文挑战第28天】性能工具之 JMeter 自定义 Java Sampler 支持国密 SM2 算法
1384 1
性能工具之 JMeter 自定义 Java Sampler 支持国密 SM2 算法
|
Web App开发 前端开发 JavaScript
WebKit 入门介绍
WebKit 入门介绍