不定参数入参

简介: 本文介绍了Spring Boot中接口参数的处理方式,包括非JSON格式(如@RequestBody、@RequestParam)和JSON格式入参(如JSONObject、封装对象)的使用示例,并展示了如何通过@Valid进行参数校验,提升接口健壮性与可维护性。

1.非JSON格式入参

@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  单个或多个独立参数

@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  封装参数

@PostMapping(value = "/init", produces = MediaType.APPLICATION_JSON_VALUE)

public ResultDTO initConfig(@Valid @RequestBody RequestParam param) {

   return initService.initConfig(param);

}

@Data

public class RequestParam {


   private long id;


   @NotBlank(message = "姓名不能为空")

   private String name;


   @NotBlank(message = "年龄不能为空")

   private String age;


}

相关文章
|
6天前
|
人工智能 弹性计算 运维
阿里云轻量应用服务器2核2G抢购38元1年、2核4G199元1年,云服务器99元1年区别与选购指南参考
阿里云2026年特惠活动推出多款高性价比云服务器:新用户可抢轻量应用服务器,2核2G仅38元/年(每日10点/15点限量),2核4G低至9.9元/月或199元/年,支持WordPress、OpenClaw AI、Hermes智能体等镜像一键部署;新老用户同享经济型e实例,2核2G固定3M带宽99元/年,续费同价可锁定至2030年。此外,通用算力型u2i实例年付3折,第九代企业级ECS(c9i/g9i/r9i)6.4折起,覆盖Web应用、AI推理、游戏服务器等场景。活动持续至2029年3月31日,是个人开发者与中小企业低成本上云的优质选择。
|
5月前
|
存储 人工智能 运维
2026年阿里云企业用户优惠政策与专属服务介绍,企业上云优惠攻略参考
2026年阿里云为企业用户推出专属优惠,涵盖199元/年通用算力型u1实例等高性价比云服务器,以及u2a实例和第九代实例等高性能选择。企业可申请最低3500元、最高10万元上云抵扣金,及5亿迁云补贴优惠券,有效降低上云成本。同时,阿里云提供专家一对一服务、初创企业专属支持及免费试用机会,助力企业平滑迁移、高效运维,满足企业从入门到高阶的多元上云需求。
|
16天前
|
监控 算法 安全
跌倒行为目标检测数据集| 5200张 YOLO安防监护数据集
本数据集含5200张YOLO格式标注图像,聚焦跌倒行为检测,覆盖居家、病房等真实场景,支持YOLOv5/v8/v10等主流模型。专为智慧养老、安防监护与目标检测研究设计,具备姿态多样、光照复杂、遮挡丰富、人工精标等优势。
|
3月前
|
SQL 关系型数据库 MySQL
EXPLAIN 执行计划:一眼看穿你的SQL慢在哪
数据库小学妹带你轻松掌握SQL性能诊断!通过EXPLAIN查看执行计划,精准识别索引失效、全表扫描(ALL)、key为NULL等瓶颈。聚焦type、key、rows等6个关键字段,结合实战案例与避坑指南(如函数滥用、最左前缀破坏),让优化有的放矢。学完即用,告别盲目调优!
|
9月前
|
监控 数据可视化 流计算
aipy写策略回测
基于2021.06-2025.06低硫油1分钟数据,构建多空动态止盈策略:跳空入场,盈利≥10跳后启动回撤止盈,配合10跳止损与时间强平。回测显示年化收益23.7%,胜率38.2%,盈亏比2.8,最大回撤32.4%,日盘表现更优,风险可控,收益稳定。(239字)
|
7月前
|
消息中间件 Java 数据安全/隐私保护
RabbitMQ集群部署
本文介绍RabbitMQ集群部署,包括普通模式与高可用方案。首先通过Docker搭建三节点集群,配置Erlang Cookie和rabbitmq.conf实现节点通信;接着演示队列创建、数据共享及宕机测试,发现普通模式无高可用能力;进而引入镜像模式,通过策略设置实现队列多副本,支持主从切换;最后重点介绍3.8版本后推荐的仲裁队列,其具备自动选举、强一致性等优势,配置更简便,是实现高可用的首选方案。
RabbitMQ集群部署
|
7月前
|
安全 Java 数据安全/隐私保护
通用权限管理模型
本文介绍了ACL和RBAC两大权限模型。ACL通过直接授权用户或角色访问对象,实现简单但管理复杂;RBAC则基于角色分配权限,通过用户-角色-权限三层结构提升管理效率,并衍生出支持角色继承(RBAC1)、职责分离(RBAC2)及两者结合的RBAC3模型,适用于复杂系统权限控制。
|
缓存 网络协议 Unix
程序员超实用的文件系统性能评测工具盘点
程序员超实用的文件系统性能评测工具盘点
|
11月前
|
人工智能 定位技术 C#
【Unity3D实例-功能-移动】通过鼠标点击进行角色移动
本文介绍了如何在Unity中实现鼠标点击控制角色移动的功能。通过安装导航网格、设置地图与角色、烘焙路径及编写脚本,带领读者一步步构建角色自动寻路系统,增强游戏交互体验。
513 0
|
小程序 Java 关系型数据库
基于Java微信小程序宠物店商城系统设计和实现(源码+LW+调试文档+讲解等)
基于Java微信小程序宠物店商城系统设计和实现(源码+LW+调试文档+讲解等)