4. 不定参数入参

简介: 本文介绍了Spring Boot中Controller层接口的常见参数接收方式,包括非JSON格式入参(如对象、基本类型、@RequestParam、@RequestBody)和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;

}

相关文章
|
Java 应用服务中间件 nginx
fastdfs实现防盗链功能
fastdfs实现防盗链功能
505 12
|
算法 生物认证 开发工具
Guideline 5.1.2 - Legal - Privacy - Data Use and Sharing
你的应用程序收集的设备信息可能包括以下一些:attributesOfItemAtPath:error:, NSLocaleCountryCode, NSFileSystemSize, NSHomeDirectory,和serviceSubscriberCellularProviders。
1164 0
|
SQL 监控 druid
druid监控配置
druid相对于传统的c3p0和dbcp及其dbcp2等多个很多新特性   可以在线监控数据库及其表和sql以及Controller的requestMapping和对应的业务方面请求和session等 是个非常好的数据库连接池   一、添加如下依赖 com.
3771 0
|
Java 数据库连接 数据库
Spring boot 使用mybatis generator 自动生成代码插件
本文介绍了在Spring Boot项目中使用MyBatis Generator插件自动生成代码的详细步骤。首先创建一个新的Spring Boot项目,接着引入MyBatis Generator插件并配置`pom.xml`文件。然后删除默认的`application.properties`文件,创建`application.yml`进行相关配置,如设置Mapper路径和实体类包名。重点在于配置`generatorConfig.xml`文件,包括数据库驱动、连接信息、生成模型、映射文件及DAO的包名和位置。最后通过IDE配置运行插件生成代码,并在主类添加`@MapperScan`注解完成整合
1681 1
Spring boot 使用mybatis generator 自动生成代码插件
|
Cloud Native Java Go
解决 Spring Boot 和 Gradle Java 版本兼容性问题:A problem occurred configuring root project ‘demo1‘. > Could n
解决 Spring Boot 和 Gradle Java 版本兼容性问题:A problem occurred configuring root project ‘demo1‘. > Could n
2037 0
|
SQL Java 数据库连接
【MyBatisPlus·最新教程】包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段
MyBatis-Plus是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。本文讲解了最新版MP的使用教程,包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段等核心功能。
2617 6
【MyBatisPlus·最新教程】包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段
|
分布式计算 Spark 大数据
深入探究Apache Spark在大数据处理中的实践应用
【6月更文挑战第2天】Apache Spark是流行的开源大数据处理框架,以其内存计算速度和低延迟脱颖而出。本文涵盖Spark概述、核心组件(包括Spark Core、SQL、Streaming和MLlib)及其在数据预处理、批处理分析、交互式查询、实时处理和机器学习中的应用。通过理解Spark内部机制和实践应用,可提升大数据处理效率,发挥其在各行业的潜力。
dynamic-datasource动态添加移除数据源
dynamic-datasource动态添加移除数据源
1469 0
|
存储 缓存 NoSQL
redis中的分布式锁(setIfAbsent)(expire)
redis中的分布式锁(setIfAbsent)(expire)
|
数据安全/隐私保护 Python
【python3.6】python安装PCL(适用命令行或pycham中)
【python3.6】python安装PCL(适用命令行或pycham中)