不定参数入参

简介: 本文介绍了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;


}

相关文章
|
10月前
|
云安全 人工智能 安全
云安全自动化:当攻击来敲门,我们用代码说“不”
云安全自动化:当攻击来敲门,我们用代码说“不”
413 17
|
7月前
|
存储 人工智能 运维
2026年阿里云企业用户优惠政策与专属服务介绍,企业上云优惠攻略参考
2026年阿里云为企业用户推出专属优惠,涵盖199元/年通用算力型u1实例等高性价比云服务器,以及u2a实例和第九代实例等高性能选择。企业可申请最低3500元、最高10万元上云抵扣金,及5亿迁云补贴优惠券,有效降低上云成本。同时,阿里云提供专家一对一服务、初创企业专属支持及免费试用机会,助力企业平滑迁移、高效运维,满足企业从入门到高阶的多元上云需求。
|
3月前
|
监控 算法 安全
跌倒行为目标检测数据集| 5200张 YOLO安防监护数据集
本数据集含5200张YOLO格式标注图像,聚焦跌倒行为检测,覆盖居家、病房等真实场景,支持YOLOv5/v8/v10等主流模型。专为智慧养老、安防监护与目标检测研究设计,具备姿态多样、光照复杂、遮挡丰富、人工精标等优势。
|
4月前
|
存储 弹性计算 人工智能
2026年阿里云除了轻量应用服务器抢购和特惠云服务器,还有哪些性能更好的云服务器?
阿里云2026年推出多款特惠云服务器,包括轻量应用服务器限时抢购(2核2G 38元/年、2核4G 9.9元/月起)和云服务器ECS低价长效特惠(经济型e实例99元/年、通用算力型u1实例199元/年)。此外,还有高配置的经济型e实例(3.9折起)和通用算力型u2i实例(新用户3折),以及第九代企业级实例(6.4折起)等高性能选择。用户可根据需求选择适合的云服务器,并利用优惠券进一步降低成本。
|
5月前
|
SQL 关系型数据库 MySQL
EXPLAIN 执行计划:一眼看穿你的SQL慢在哪
数据库小学妹带你轻松掌握SQL性能诊断!通过EXPLAIN查看执行计划,精准识别索引失效、全表扫描(ALL)、key为NULL等瓶颈。聚焦type、key、rows等6个关键字段,结合实战案例与避坑指南(如函数滥用、最左前缀破坏),让优化有的放矢。学完即用,告别盲目调优!
|
11月前
|
监控 数据可视化 流计算
aipy写策略回测
基于2021.06-2025.06低硫油1分钟数据,构建多空动态止盈策略:跳空入场,盈利≥10跳后启动回撤止盈,配合10跳止损与时间强平。回测显示年化收益23.7%,胜率38.2%,盈亏比2.8,最大回撤32.4%,日盘表现更优,风险可控,收益稳定。(239字)
|
7月前
|
消息中间件 NoSQL Java
百万消息积压 4 小时,我靠这套方案快速止血
本文针对分布式系统中百万级消息积压问题,提出了一套完整的解决方案。首先分析了消息积压的本质是生产速度超过消费速度,并阐述了积压的危害。随后详细介绍了"紧急止血→根源排查→彻底解决→复盘优化"的四步处理流程:通过暂停非核心生产者、扩容消费者、消息分流和跳过无效消息快速缓解积压;从消费端、生产端和队列配置三个维度排查根本原因;从架构、配置和代码层面提出长期优化方案;最后强调建立监控预警体系的重要性。文章提供了大量生产环境验证的代码示例和技术方案,帮助开发者系统性地解决消息积压问题。
601 6
|
9月前
|
消息中间件 Java 数据安全/隐私保护
RabbitMQ集群部署
本文介绍RabbitMQ集群部署,包括普通模式与高可用方案。首先通过Docker搭建三节点集群,配置Erlang Cookie和rabbitmq.conf实现节点通信;接着演示队列创建、数据共享及宕机测试,发现普通模式无高可用能力;进而引入镜像模式,通过策略设置实现队列多副本,支持主从切换;最后重点介绍3.8版本后推荐的仲裁队列,其具备自动选举、强一致性等优势,配置更简便,是实现高可用的首选方案。
RabbitMQ集群部署
|
API 开发者
1688店铺订单接口指南攻略
1688店铺订单接口用于获取订单列表、查询订单详情及操作订单等。首先需注册为1688开放平台开发者,创建应用获取App Key与App Secret。使用API获取订单列表时,要申请订单查询权限,并通过HTTP请求传递参数(如seller_id、page、page_size和access_token)调用接口。此功能适用于管理1688店铺订单数据。
|
缓存 网络协议 Unix
程序员超实用的文件系统性能评测工具盘点
程序员超实用的文件系统性能评测工具盘点