优雅地处理参数传递:Spring Boot中的技巧

这篇具有很好参考价值的文章主要介绍了优雅地处理参数传递:Spring Boot中的技巧。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一:四种传参方式

1.1:在 URL 中传递参数

1.2:PathVariable 传递参数(Restful 风格)

1.3:在请求体中传递参数

1.4:在请求头中传递参数

 二:文件上传接口测试

 2.1 : test.java

 三、@RequestParam

3.1 多个参数

 3.2 单个参数

 四、@PathVariable

4.1  单个参数

 4.2  多个参数

五、@RequestBody

5.1  单个参数

 5.2  User对象

 5.3  Map对象 

​编辑

 5.4  List 集合

六:RequestHeader

七、HttpServletRequest

补充:

8: JSONObject 类型

9:使用@ModelAttribute注解



一:四种传参方式

SpringBoot 接收参数的常用方式主要有以下几种:

1.1:在 URL 中传递参数

        可以通过在 URL 中添加参数来传递数据,例如:/user?id=123&name=Tom。在 SpringBoot 中,可以使用 @RequestParam 注解来获取请求参数。

优雅地处理参数传递:Spring Boot中的技巧

1.2:PathVariable 传递参数(Restful 风格)

       PathVariable 可以接受 URL 中的变量值,例如:/user/123,其中 123 就是一个变量。在 SpringBoot 中,可以使用 @PathVariable 注解来获取 URL 中的变量值。

 优雅地处理参数传递:Spring Boot中的技巧

1.3:在请求体中传递参数

      可以将参数放在请求体中传递,例如:POST 请求中的表单数据或 JSON 数据。在 SpringBoot 中,可以使用 @RequestBody 注解来获取请求体中的参数。

优雅地处理参数传递:Spring Boot中的技巧

1.4:在请求头中传递参数

      可以在请求头中添加参数,例如:JWT Token。在 SpringBoot 中,可以使用 @RequestHeader 注解来获取请求头中的参数。

优雅地处理参数传递:Spring Boot中的技巧

 二:文件上传接口测试

 2.1 : test.java

 @PostMapping("/test10")
    public Result test10(@RequestParam("file") MultipartFile file) {
        return Result.ok(200);
    }

优雅地处理参数传递:Spring Boot中的技巧

优雅地处理参数传递:Spring Boot中的技巧

 三、@RequestParam

3.1 多个参数

  @GetMapping("/test3")
    public Result test3(@RequestParam("id") Integer id ,
                        @RequestParam("name") String name){
        return Result.ok(name+id);
    }

执行结果:

优雅地处理参数传递:Spring Boot中的技巧

 3.2 单个参数

    @PostMapping("/test4")
    public Result test4(@RequestParam("name") String name) {
        return Result.ok(name);
    }

执行结果:

优雅地处理参数传递:Spring Boot中的技巧

 四、@PathVariable

   @PathVariable 用于绑定 url 中的占位符。例如:请求 url 中 /delete/{id},这个{id}就是 url 占位符。url 支持占位符是 spring3.0 之后加入的。是 springmvc 支持 rest 风格 URL 的一个重要标志。

4.1  单个参数

    @PostMapping("/test2/{id}")
    public Result test2(@PathVariable("id") Integer id) {
        return Result.ok(id);
    }

 4.2  多个参数

  @GetMapping("/test1/{id}/{name}")
    public Result test1(@PathVariable("id") Integer id,
                        @PathVariable("name") String name) {
        return Result.ok(id+":"+name);
    }

优雅地处理参数传递:Spring Boot中的技巧

五、@RequestBody

         @RequestBody一般被用来接收http请求中body中json数据。get、post都可以使用。一般用于post。

5.1  单个参数

注意:不支持 (@RequestBody String name 2,@RequestBody String name2)

   @PostMapping("/test5")
    public Result test5(@RequestBody String name) {
        return Result.ok(name);
    }
 

不同传参得到的结果不同:

" 李四 "

优雅地处理参数传递:Spring Boot中的技巧

JSON格式:

{
  "name": "李四"
}

优雅地处理参数传递:Spring Boot中的技巧

 5.2  User对象

    @PostMapping("/test6")
    public Result test6(@RequestBody User user) {
        return Result.ok(user);
    }

 结果:

优雅地处理参数传递:Spring Boot中的技巧

 5.3  Map对象 

    @PostMapping("/test7")
    public Result test7(@RequestBody HashMap map) {
        return Result.ok(map);
    }

结果:

优雅地处理参数传递:Spring Boot中的技巧

 5.4  List 集合

    @PostMapping("/test8")
    public Result test8(@RequestBody List<User> list) {
        return Result.ok(list);
    }

结果:

优雅地处理参数传递:Spring Boot中的技巧

六:RequestHeader

        @RequestHeader主要用来获取请求当中的请求头

代码示例:

    @PostMapping("/test9")
    public Result test9(@RequestHeader("token") String token ) {
        return Result.ok(token);
    }

结果:

优雅地处理参数传递:Spring Boot中的技巧

七、HttpServletRequest

        直接拿到request对象,通过request可以从对象中灵活的获取参数:

@RestController
@RequestMapping("/request")
public class HttpServletRequestController {

    @GetMapping("/getUrlValue")
    public String getUrlValue(HttpServletRequest request) {
        // 没有的时候不会报错,直接为null
        String msg = request.getParameter("msg");
        System.out.println(msg);
        return msg;
    }

    @GetMapping("/getUrlValues")
    public String getHttpServletRequestValue(HttpServletRequest request) {
        Map<String, String[]> parameterMap = request.getParameterMap();
        return JSONObject.toJSONString(request.getParameterMap());;
    }
}

补充:

8: JSONObject 类型

   @GetMapping(value = "/queryTest")
    @AnonymityAnnotation(access = true)
    public WebResponse<JSONObject> queryAuthUsers(@RequestBody JSONObject jsonObject){
        JSONObject  js = jsonObject;
        return new WebResponse<JSONObject>().success(js);
    }

参数:

{
  "propertyName": "someValue"
}

打印结果:

{
  "meta": {
    "success": true,
    "statusCode": 200,
    "message": "ok"
  },
  "data": {
    "propertyName": "someValue"
  }
}

9:使用@ModelAttribute注解

    @GetMapping(value = "/queryTest2")
    @AnonymityAnnotation(access = true)
    public WebResponse<testPO> queryAuthUsers2(@ModelAttribute testPO dto){
        testPO dto1 = dto;
        return new WebResponse<testPO>().success(dto1);
    }

传参:

优雅地处理参数传递:Spring Boot中的技巧文章来源地址https://www.toymoban.com/news/detail-450730.html

到了这里,关于优雅地处理参数传递:Spring Boot中的技巧的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring MVC 参数传递和JSON数据处理

    编写controller 在index.jsp里面定义超链接 编写controller 在index.jsp里面定义超链接 编写controller 在index.jsp里面定义超链接 springmvc 默认使用jackson作为json类库,不需要修改applicationContext-servlet.xml任何配置,只需引入以下类库springmvc就可以处理json数据: @RequestBody:作用是接收前端aja

    2024年01月24日
    浏览(51)
  • Spring Boot常用的参数验证技巧和使用方法

    Spring Boot是一个使用Java编写的开源框架,用于快速构建基于Spring的应用程序。在实际开发中,经常需要对输入参数进行验证,以确保数据的完整性和准确性。Spring Boot提供了多种方式来进行参数验证,并且可以很方便地集成到应用程序中。 JSR-303是Java Validation API的规范之一,

    2024年02月09日
    浏览(59)
  • SpringBoot基于Aop优雅的处理参数中的空格(提供Gitee源码)

    前言:在实际开发中,很多用户会不经意的输入空格,导致存入数据库中的信息也同样存在空格,这样会导致根据某个字段去查询数据的时候总是查询不到的问题,后来才发现是因为多了个空格的问题,如果我们按传统的方式在每个方法中一个个对空格进行处理,这样会导致

    2024年02月20日
    浏览(32)
  • Spring Boot请求处理-常用参数注解

    @PathVariable 路径变量 @RequestParam 获取请求参数 @RequestHeader 获取请求头 @RequestBody 获取请求体【Post】 @CookieValue 获取Cookie值 RequestAttribute 获取request域属性 @ModelAttribute 1. @PathVariable 该注解主要用于rest风格的搭配使用,请求路径中不再以 k:v 的形式给出请求参数和值;而是直接给定

    2024年02月10日
    浏览(54)
  • 企业级实战 Spring Boot + K8S 中的滚动发布、优雅停机、弹性伸缩、应用监控、配置分离

    下面为大家介绍我司生产环境使用了3年的基于K8S的dev ops 配置实现 K8s + SpringCloud实现零宕机发版,优雅重启:健康检查+滚动更新+优雅停机+弹性伸缩+Prometheus监控+配置分离(镜像复用) 业务层面 项目依赖 pom.xml 使用 spring-boot-starter-actuator 镜像 存活、就绪检查 使用 prometheus

    2024年02月06日
    浏览(51)
  • Spring Boot中处理前端的POST请求参数

    在Spring Boot中处理前端的POST请求参数可以使用@RequestParam注解或@RequestBody注解。 @RequestParam注解用于获取请求参数的值,可以用于处理GET和POST请求。它可以指定参数的名称、是否必须、默认值等属性。 例如,假设前端发送了一个POST请求,请求参数为name和age,可以使用@Request

    2024年02月15日
    浏览(98)
  • Spring Boot接收从前端传过来的数据常用方式以及处理的技巧

    前端传递过来的数据类型,老师这里会把它分为两个主要的方向: 第1个方向:非json格式的数据 第2个方向:json格式的数据 非json格式的数据 方式1 :直接可以将控制层方法的参数名称和请求的参数名称保持一致来进行接收。 场景:数据量(参数个数)比较小,=3个参数 优点

    2024年02月01日
    浏览(50)
  • Spring Boot应用优雅关闭

    POM依赖 在需要实现优雅关闭的应用工程中增加下述依赖:部分启动器默认就依赖了Actuator启动器,如:spring-cloud-starter-netflix-eureka-server,那么下述依赖是可以省略的。 配置文件: Actuator提供的优雅关闭服务地址是: http://IP:Port/actuator/shutdown 。 必须使用POST请求访问此路径地址

    2024年02月13日
    浏览(41)
  • Spring MVC参数接收、参数传递

    Springmvc中,接收页面提交的数据是通过方法形参来接收: 处理器适配器调用springmvc使用反射将前端提交的参数传递给controller方法的形参 springmvc接收的参数都是String类型,所以spirngmvc提供了很多converter(转换器)在特殊情况下需要自定义converter,如对日期数据 编写controller  

    2024年01月16日
    浏览(60)
  • Spring Boot项目优雅实现读写分离

    🎉欢迎来到架构设计专栏~Spring Boot项目优雅实现读写分离 ☆* o(≧▽≦)o *☆嗨~我是IT·陈寒🍹 ✨博客主页:IT·陈寒的博客 🎈该系列文章专栏:架构设计 📜其他专栏:Java学习路线 Java面试技巧 Java实战项目 AIGC人工智能 数据结构学习 🍹文章作者技术和水平有限,如果文中

    2024年02月05日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包