4. 不定参数入参

简介: 本文介绍了接口参数的两种处理方式:非JSON格式与JSON格式入参。前者支持基础类型、对象等直接传参,后者通过@RequestBody接收JSON数据,可封装为对象并结合@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);
}

其中封装入参对象就是一个包含各入参函数对象的Object

这里同步做了数据校验,可忽略也可在其项目参考,其中包资源

import javax.validation.Valid;

import javax.validation.constraints.NotBlank;

@Data
public class RequestParam {
    private long id;
    @NotBlank(message = "姓名不能为空")
    private String name;
    @NotBlank(message = "年龄不能为空")
    private String age;
}
目录
相关文章
|
6月前
|
缓存 算法 Java
IO/线程 线程池
本文深入剖析Java线程池的工作原理,涵盖ThreadPoolExecutor与ScheduledThreadPoolExecutor的实现机制。通过源码分析,详解线程池如何管理线程生命周期、任务调度策略及延时队列等核心组件,并结合Executors工具类说明各类线程池的应用场景。
85 0
|
6月前
|
存储 NoSQL 关系型数据库
1-MongoDB相关概念
MongoDB是一款高性能、无模式的文档型NoSQL数据库,适用于高并发、海量数据、高可用性场景。其灵活的BSON文档模型、丰富的查询支持及水平扩展能力,广泛应用于社交、游戏、物联网等领域,尤其适合非事务性、快速迭代的应用系统。
104 0
 1-MongoDB相关概念
|
6月前
|
存储 JSON NoSQL
3-MongoDB常用命令
本文介绍MongoDB数据库操作,包括创建和删除数据库、集合的显式与隐式创建及删除,以及文档的增删改查。重点讲解文章评论数据存储至articledb库中的实际应用,涵盖批量插入、条件查询、分页排序等常用操作,帮助掌握MongoDB基本CRUD技能。
108 0
 3-MongoDB常用命令
|
6月前
|
存储 NoSQL 关系型数据库
4-MongoDB索引知识
MongoDB索引基于B树结构,可高效支持查询,避免全集合扫描。主要类型包括单字段索引、复合索引、地理空间索引、文本索引和哈希索引,适用于不同查询场景,显著提升查询性能。
559 0
 4-MongoDB索引知识
|
6月前
|
NoSQL Java 测试技术
5-MongoDB实战演练
本文介绍某头条文章评论功能的设计与实现,基于SpringDataMongoDB构建微服务,完成评论的增删改查、按文章ID查询、分页查询及点赞功能。通过MongoTemplate优化点赞操作,提升性能,并使用索引提高查询效率,整体方案高效且可扩展。
220 0
 5-MongoDB实战演练
|
6月前
|
Java Maven
3. 打包
本文介绍Java项目打包为可执行JAR文件的两种方式:一是将所有内容打包进单一JAR,通过Maven配置spring-boot-maven-plugin实现;二是将JAR、依赖与配置文件分离。涵盖配置方法、打包命令(mvn clean package)、运行与停止指令(java -jar、kill -9 pid)等操作步骤。
191 0
 3. 打包
|
5月前
|
存储 人工智能 自然语言处理
《炎鹊,你的AI效率伙伴》技术架构与核心能力深度解析
炎鹊AI基于Nexus Agent v1.0架构,打造懂行业、可定制、多模态的专属AI效率伙伴。融合LLM、AIGA决策大脑、垂直知识图谱与多模态知识库,支持低代码快速搭建,实现文本、图像、语音、视频全数据智能处理,助力企业降本增效,让AI真正融入业务全流程。
253 0
|
6月前
|
NoSQL Linux Shell
2-MongoDB单机部署
本文介绍了MongoDB在Windows和Linux系统下的安装、配置与启动方法,包括下载地址、版本选择、解压安装、命令行及配置文件启动方式,并详细说明了如何通过Shell和图形化工具Compass连接数据库。同时提供常见问题解决方案及附件中的各环境安装包链接,便于快速部署使用。
152 0
|
6月前
|
存储 Java 编译器
Java泛型类型擦除以及类型擦除带来的问题
Java泛型在编译时会进行类型擦除,所有泛型信息被移除,仅保留原始类型(如Object或限定类型)。例如,List<String>和List<Integer>在运行时均为List。类型检查在编译期完成,针对引用而非对象本身。擦除后通过桥方法解决多态冲突,并自动插入强制转换。静态成员不能使用类的泛型参数,基本类型需用包装类。
99 0
|
6月前
|
监控 算法 Unix
IO/线程 Thread.sleep(0) 到底有什么用(读完就懂)
本文深入解析Thread.Sleep的原理与应用,结合操作系统调度机制,揭示Sleep(1000)未必准时唤醒、Sleep(0)主动让出CPU等行为的本质,帮助开发者正确理解线程休眠与CPU竞争的关系。
93 0

热门文章

最新文章