springboot controller参数注入方式

 更新时间:2024年05月07日 10:23:59   作者:JinF~  
这篇文章主要介绍了springboot controller参数注入方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

基本类型参数

以上为例,接收基本类型参数时,可以把 nameage 封装进对象,也可以不封装,执行结果是一样的。

@RequestParam 也可以不用,只要接收的参数名和传输的参数名相等即可。

get post 请求都可。

@PostMapping("/simpleField")
public String simpleField(@RequestParam("name") String name,@RequestParam("age") String age) {
    return name + age;
}

前端参数提交

不能使用 @RequestBody@RequestBody 指定参数接收 json 格式的数据,只能用封装类接收参数,错误使用的示例如下

@PostMapping("/t")
public String t(@RequestBody String a,String b) {
    return a + b;
}

在这里插入图片描述

接收对象类型参数

1.不使用 @RequestBody

前端传输参数格式如 postman 所示,只需要参数名称能够对应即可,如果属性是对象,则使用.对象属性名来指明属性,如果属性是数组或者集合,则需要加上[下标]来指定下标。

get post 请求都行。

@Data
public class Album {
    private Integer musicCount;
    private String[] musics;
    private List<Person> musicians;
    private Person[] people;
}
@RestController
@RequestMapping("/test")
public class TestController {
    @Resource
    private ObjectMapper json;

    @PostMapping("/test")
    public String test(Album album) throws JsonProcessingException {
        return json.writeValueAsString(album);
    }
}

前端传输参数格式

2.使用 @RequestBody

@RequestBody指定参数将接收json数据格式,需要把请求头的 Content-Type 设置为 application/json,按照上面的例子,前端传输的数据格式如下

@RestController
@RequestMapping("/test")
public class TestController {
    @Resource
    private ObjectMapper json;

    @PostMapping("/test")
    public String test(@RequestBody Album album) throws JsonProcessingException {
        return json.writeValueAsString(album);
    }
}

前端传输数据格式

接收对象类型数组时需要在数组参数前使用 @RequestBody@RequestBody 的作用是接收 json 格式的数据封装成对象。

不使用 @RequestBody 的话会报没有默认构造函数的异常。

接收基本类型数组

接收基本类型数组的方式和接收基本类型一样,只要接收的参数名和传输的参数名相等即可。

get post 请求都行。

以下为例,有些前端传输的数组参数格式是 ?strs[]=strs1&strs[]=strs2,这种情况下可以在方法参数前使用 @RequestParam("strs[]") 来接收参数

@RestController
@RequestMapping("/test")
public class TestController {
    @Resource
    private ObjectMapper json;

    @PostMapping("/array")
    public String array(String[] strs,Integer[] ints) throws JsonProcessingException {
        return json.writeValueAsString(strs)+" "+json.writeValueAsString(ints);
    }
}

前端参数格式

接收基本类型集合

如果直接使用基本类型集合接收数据,则必须使用 @RequestBody ,不使用 @RequestBody 的话必须把集合封装进类,如本文 接收对象类型参数 所示,使用 @RequestBody 的示例如下

@PostMapping("/array")
public String test(@RequestBody List<String> names) throws JsonProcessingException {
    return json.writeValueAsString(names);
}

示例

接收对象类型数组和集合

接收对象类型数组和集合时如果不封装进实体类,则必须使用 @RequestBody,封装进实体类的方式见本文

接收对象类型参数

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • java byte数组转String的几种常用方法

    java byte数组转String的几种常用方法

    在Java中数组是一种非常常见的数据结构,它可以用来存储多个相同类型的数据,有时候,我们需要将数组转换为字符串,以便于输出或者传递给其他方法,这篇文章主要给大家介绍了关于java byte数组转String的几种常用方法,需要的朋友可以参考下
    2024-09-09
  • Java私有构造函数作用原理解析

    Java私有构造函数作用原理解析

    这篇文章主要介绍了Java私有构造函数作用原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • Java执行SQL脚本文件到数据库详解

    Java执行SQL脚本文件到数据库详解

    这篇文章主要为大家详细介绍了Java执行SQL脚本文件到数据库的相关方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • 关闭支付宝小额免密支付步骤详解

    关闭支付宝小额免密支付步骤详解

    支付宝现在作为我们日常生活中最常用的应用之一,已经成为了人们的虚拟钱包。但是最近,有人发现了支付宝的一个漏洞,本文将对如何关闭小额免密支付进行步骤介绍。下面跟着小编一起来看下吧
    2017-01-01
  • 阿里nacos+springboot+dubbo2.7.3统一处理异常的两种方式

    阿里nacos+springboot+dubbo2.7.3统一处理异常的两种方式

    本文主要介绍了阿里nacos+springboot+dubbo2.7.3统一处理异常的两种方式,文中根据实例编码详细介绍的十分详尽,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Springboot集成SSE实现单工通信消息推送流程详解

    Springboot集成SSE实现单工通信消息推送流程详解

    SSE简单的来说就是服务器主动向前端推送数据的一种技术,它是单向的,也就是说前端是不能向服务器发送数据的。SSE适用于消息推送,监控等只需要服务器推送数据的场景中,下面是使用Spring Boot来实现一个简单的模拟向前端推动进度数据,前端页面接受后展示进度条
    2022-11-11
  • SpringBoot2.0整合jackson配置日期格式化和反序列化的实现

    SpringBoot2.0整合jackson配置日期格式化和反序列化的实现

    这篇文章主要介绍了SpringBoot2.0整合jackson配置日期格式化和反序列化的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • Java集合去重导致的线上问题

    Java集合去重导致的线上问题

    这篇文章主要介绍了Java集合去重导致的线上问题,根据主题提出Set是怎样保证数据的唯一性的,为什么两种去重方式性能差距这么大的问题,下文解决思路需要的小伙伴可以参考一下
    2022-04-04
  • springboot配置数据库密码特殊字符报错的解决

    springboot配置数据库密码特殊字符报错的解决

    这篇文章主要介绍了springboot配置数据库密码特殊字符报错的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • Java实现添加条码或二维码到Word文档

    Java实现添加条码或二维码到Word文档

    这篇文章主要介绍了如何在Word文档中添加条码、二维码。可在文档正文段落中添加,也可在页眉页脚中添加,感兴趣的小伙伴快跟随小编一起学习一下吧
    2022-05-05

最新评论