不定参数入参

简介: 本文介绍了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注意力机制(涨点明显)
9888 1
|
10月前
|
存储 JSON 安全
加密和解密函数的具体实现代码
加密和解密函数的具体实现代码
1289 137
|
7月前
|
存储 弹性计算 关系型数据库
阿里云服务器及其他云产品免费试用活动解析:160多款产品支持试用,先试后用
阿里云推出涵盖160多款云产品的免费试用活动,覆盖计算、数据库、存储、网络与安全、大数据与AI等全场景。活动包含个人/企业版云服务器ECS(最高8核16G配置)、轻量应用服务器(预装宝塔面板等镜像)、RDS数据库(MySQL/PostgreSQL版)、对象存储OSS等核心产品,提供300元-660元试用金、流量包及企业级规格试用。
657 12
|
8月前
|
设计模式 算法 Java
Java 学习进阶书单:从基础到架构,循序渐进提升技术栈
一份涵盖Java基础、并发、JVM、算法、数据库、框架、架构等12大方向的精选书单,每本书均附精准定位与阅读建议,助力Java程序员高效进阶,少走弯路。
940 0
|
Web App开发 前端开发 JavaScript
WebKit 入门介绍
WebKit 入门介绍
GROMACS运行参数之npt.mdp文件详解
GROMACS运行参数之npt.mdp文件详解
1505 0
|
小程序 JavaScript 前端开发
小程序云开发全套实战教程(最全)
小程序云开发全套实战教程(最全)
561 0
|
消息中间件 存储 NoSQL
消息队列的对比及适配的应用场景
消息队列的对比及适配的应用场景
841 0
|
监控 Cloud Native Java
传统应用的“云”端新生——Quarkus迁移全攻略
随着云计算的发展,传统单体应用逐渐显现出扩展性和维护成本等问题,而云原生应用因轻量、高效成为新宠。Quarkus作为一款高性能的云原生Java框架,正吸引越来越多开发者。本文详细介绍将传统应用迁移至Quarkus的步骤,包括全面评估、环境搭建、代码重构、数据库迁移、安全性与监控设置,以及测试和部署。通过这些步骤,您可以顺利实现应用的云原生化,享受其带来的诸多优势。
439 3
|
Web App开发 人工智能 机器人
我们在外滩大会开源了一个小猫咪项目—— Peter Cat
嘿,还记得那些年你作为小白初入码圈,在 GitHub 上瑟瑟发抖求答疑的日子吗?文档看不懂到怀疑人生,代码理不清到人生自闭,issue 提了石沉大海,fork 项目自力更生,心里那个苦啊!
743 3