SpringBoot. 不定参数入参

简介: 本文介绍了Java后端接口开发中常见参数接收方式,包括非JSON格式的不定参数、基本类型传参,以及JSON格式的JSONObject解析和封装对象入参。重点讲解了@RequestBody、@RequestParam等注解的使用场景,并结合@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;

}

相关文章
|
1月前
|
编译器 程序员 Linux
实用工具:VS Code 配置 Markdown 编译器全指南
本文介绍如何在VS Code中配置高效Markdown写作环境,通过启用内置预览、安装Markdown All in One与Markdown Preview Enhanced插件,并配置Princexml实现PDF等格式导出,全面提升编辑、预览与输出效率,适合程序员、学生及内容创作者使用。
603 2
实用工具:VS Code 配置 Markdown 编译器全指南
|
1月前
|
JSON 安全 Java
SpringBoot.鉴权
本文介绍如何在Spring Boot项目中结合JWT与Spring Security实现安全鉴权。涵盖Token生成与验证、自定义认证流程、角色权限控制(RBAC),并通过过滤器实现登录拦截与请求认证,保障接口安全。
133 2
|
1月前
|
JavaScript Java 关系型数据库
基于springboot的社区垃圾分类管理系统
本系统基于Spring Boot与MySQL,结合物联网、大数据等技术,构建社区智能垃圾管理平台。实现垃圾投放监控、自动分类识别、积分激励及数据统计分析,提升管理效率与居民参与度,推动绿色社区可持续发展。
|
1月前
|
SQL 人工智能 自然语言处理
业务人员也能用的 AI 数据分析工具?Aloudata Agent “开箱即用”体验报告
不仅提升了个人工作效率,更推动了企业数据民主化进程,让数据真正成为驱动业务增长的核心引擎
|
1月前
|
机器学习/深度学习 并行计算 文件存储
机器学习超参数调优:十个实用的贝叶斯优化(Bayesian Optimization)进阶技巧
贝叶斯优化虽强大,但直接使用常面临收敛慢、计算贵等问题。本文总结十大实战技巧:引入先验加速冷启动,动态调整采集函数打破平台期,对数变换处理量级差异,避免超-超参数过拟合,成本感知抑制资源浪费,混合随机搜索提升鲁棒性,并行化利用多GPU,正确编码类别变量,约束无效区域,以及集成代理模型降方差。结合这些策略,让BO更智能、高效,真正发挥超参调优潜力。
200 12
机器学习超参数调优:十个实用的贝叶斯优化(Bayesian Optimization)进阶技巧
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
AI Compass前沿速览:Open-AutoGLM智能体框架、Z-Image图像生成、GLM-4.6V多模态理解与可灵2.6音画同步技术
AI Compass前沿速览:Open-AutoGLM智能体框架、Z-Image图像生成、GLM-4.6V多模态理解与可灵2.6音画同步技术
AI Compass前沿速览:Open-AutoGLM智能体框架、Z-Image图像生成、GLM-4.6V多模态理解与可灵2.6音画同步技术
|
1月前
|
Python
NPP 苔原:阿拉斯加巴罗角,1970-1972 年,R1
本数据集包含1970–1972年阿拉斯加巴罗角苔原的生物量、叶面积指数与净初级生产力(NPP)数据,涵盖地上/地下生物量动态及八种植被类型的NPP估算,并附气象信息。数据支持气候变化与生态系统研究,属国际生物计划的一部分,已修订更新。
69 8
|
1月前
|
SQL XML Java
蓝易云:MyBatis注解的运用于条件搜索实践
通过上述的实践,我们可以看出MyBatis注解不仅能够实现条件搜索的需求,还能够提供灵活而强大的SQL构造能力,极大地简化了代码的复杂度,提高了开发效率。在实际的项目开发中,结合实际的业务需求合理选择MyBatis的配置方式(注解或XML),能够让数据持久层代码变得更加清晰和易维护。
48 6
|
1月前
|
人工智能 算法 安全
中央经济工作会议:“人工智能+”与“加强治理”成为行业重点关键词
对于整个AI行业而言,2026年或许不会是情绪高涨的一年,却很可能是决定行业格局、筛选长期玩家的一年。在“人工智能+”不断深化的同时,理解并主动响应治理要求,正在成为每一位AI从业者绕不开的必修课。
|
1月前
|
Web App开发 JavaScript 前端开发
SpringBoot.跨域处理
跨域指协议、域名、端口不同时的资源请求限制。本文详解CORS解决方案,包括@CrossOrigin注解、全局配置WebMvcConfigurer及Filter拦截器实现,支持指定域名跨域访问,保障前后端分离架构下安全通信。
70 2

热门文章

最新文章