当前位置: 首页 > article >正文

Spring数据接收揭秘

@RequestMapping

@RequestMapping是Spring框架中用于将HTTP请求映射到控制器的处理方法上的注解,它能将特定的HTTP请求与控制器中的方法进行关联,使开发者可以根据请求的路径、请求方法、请求头、请求参数等条件,来确定由哪个方法处理该请求,从而实现对不同类型请求的精准处理。

常用属性

  1. value和path:用于指定请求的路径,可以是一个或多个字符串数组,如@RequestMapping(value = "/users", method = RequestMethod.GET)  ,将处理路径为 /users 的GET请求。
  2. method:指定可接收的HTTP请求方法,如GET、POST、PUT、DELETE等,若不指定,默认可接收所有类型的请求。
  3. params:用于对请求的参数进行限制,例如, @RequestMapping(value = "/user", params = "id=123")  ,当请求中包含名为 id 且值为 123 的参数时,该方法才会被调用。
  4. headers:可对请求头进行限制。如  @RequestMapping(value = "/admin", headers = "Authorization=admin_token")  ,只有请求头中包含指定的 Authorization 值时,方法才会处理该请求。

示例:

@Controller
@RequestMapping("/api")
public class UserController {

    // 处理路径为/api/users的GET请求
    @RequestMapping(value = "/users", method = RequestMethod.GET)
     //
 
    // 处理路径为/api/userst请求
    @RequestMapping(value = "/usert", params = "id=123")
    //
}

*

  1. @GetMapping:@RequestMapping(method = RequestMethod.GET)  的快捷方式,用于处理GET请求。
  2. @PostMapping:@RequestMapping(method = RequestMethod.POST)  的简化形式,用于处理POST请求。
  3. @PutMapping:@RequestMapping(method = RequestMethod.PUT) 的快捷方式,用于处理PUT请求。
  4. @DeleteMapping:对应@RequestMapping(method = RequestMethod.DELETE),用于处理DELETE请求,主要用于删除资源。

@RequestParam

@RequestParam主要用于从HTTP请求中提取参数值,并将其绑定到控制器方法的参数上,使开发者能方便地在方法中使用请求参数进行业务逻辑处理。
 

常用属性
 

  1. value或name:用于指定要获取的参数名称,如@RequestParam("user")获取名为user的参数值,若方法参数名与请求参数名相同,可省略此属性。
  2. required:指定参数是否必需,默认值为  true,即请求中必须包含该参数,否则会抛出异常;若设置为  false  ,则请求中可不包含该参数,此时方法参数会被赋值为null或默认值。
  3. defaultValue:当请求中未包含指定参数时,设置参数的默认值。

当控制器方法被调用时,Spring会检查方法的参数是否被@RequestParam注解标注,如果是,它会根据注解中指定的参数名称,从HTTP请求中查找对应的参数值,找到后,将其转换为方法参数所需的类型,并赋值给该参数。

示例:

@Controller
@RequestMapping("/api")
public class UserController {

    // 从请求中获取名为id的参数值
    @GetMapping
    public String search(@RequestParam("id") String name) {
      //
     }

    // 获取可选参数page,若请求中未传递,则默认为1
    @GetMapping("/apit")
    public String Apit(@RequestParam(defaultValue = "1") Integer page, String name) {
       //
    }
}

@PathVariable

在Spring MVC的控制器方法的参数前使用@PathVariable注解,如 public String method(@PathVariable String name),其中name需与URL路径中的参数名一致。
示例
 

@GetMapping("/users/{id}")
public String getUserById(@PathVariable String id) {
    // 
}


其中{id}是URL路径中的变量部分,@PathVariable注解将该变量的值绑定到方法参数 id 上。

@PathVariable可以与@RequestMapping或@GetMapping等结合,用于定义包含路径变量的请求映射。
 

@RequestMapping("/orders/{orId}/items/{itId}")
public String NewItem(@PathVariable String orId, @PathVariable String itId) {
         //
  }

通过 @RequestMapping 定义了一个包含两个路径变量 {orderId} 和 {itemId} 的请求路径,

@RequestBody

@RequestBody主要用于将请求体中的数据绑定到控制器方法的参数上
 
功能与用途
 
它可以将HTTP请求中的数据,将其转换为Java对象,以便在控制器方法中直接使用该对象进行业务逻辑处理,从而简化数据提取和转换的过程。


如何在Spring MVC控制器中使用 @RequestBody 注解:

@RestController
public class UserController {

    @PostMapping("/users")
    public void createUser(@RequestBody User user) {
        //         
    }
}

class User {
    private String name;
    private int age;

    // 省略构造函数、Getter和Setter方法
}


createUser 方法使用 @RequestBody 注解将请求体中的JSON数据转换为User对象,假设前端发送一个包含 name 和age属性的JSON对象,Spring框架会将其转换为User并传递给createUser方法。
 


http://www.kler.cn/a/409951.html

相关文章:

  • 递推进阶与入门递归
  • 详细探索xinput1_3.dll:功能、问题与xinput1_3.dll丢失的解决方案
  • 8、深入剖析PyTorch的state_dict、parameters、modules源码
  • Gradio学习笔记记录
  • 《生成式 AI》课程 作业6 大语言模型(LLM)的训练微调 Fine Tuning -- part1
  • 【C++笔记】数据结构进阶之二叉搜索树(BSTree)
  • windows C#-生成和使用异步流(下)
  • 具有多个表盘、心率传感器、指南针和游戏的 DIY 智能手表
  • 2024年跨行业跨领域工业互联网平台
  • 17.5k Star,ThingsBoard 一款开源、免费、功能全面的物联网 IoT 平台 -慧知开源充电桩平台
  • Linux中的共享内存
  • 【CSP CCF记录】201803-1第13次认证 跳一跳
  • matlab -炉温串级控制PID
  • 24.11.21深度学习
  • .NET Core发布网站报错 HTTP Error 500.31
  • 视频分析设备平台EasyCVR视频设备轨迹回放平台与应急布控球的视频监控方案
  • 嵌入式硬件杂谈(六)充电器原理 线性电源 开关电源 反激电源原理
  • 论文阅读:A fast, scalable and versatile tool for analysis of single-cell omics data
  • node.js nvm 安装和使用
  • 前端面试笔试(五)
  • 网络安全等级保护测评机构管理办法(全文)
  • 【前端学习笔记】Web API——BOM与DOM
  • Python 版本的 2024详细代码
  • AI安全:从现实关切到未来展望
  • Jmeter中的监听器
  • 信息收集(1)