Spring MVC常用注解

SpringMVC注解

@PathVariable、@RequestBody和@RequestParam

@PathVariable、@RequestBody和@RequestParam是Spring MVC框架中用于处理请求参数的注解。

  1. @PathVariable:用于处URL路径中的占位符参数。例如,对于URL /users/{id},其中的{id}是一个占位符,可以使用@PathVariable注解将其绑定到方法的参数上,如下所示:
java 复制代码
@GetMapping("/users/{id}")
public String getUserById(@PathVariable Long id) {
    // 在这里,id参数将接收URL中的占位符{id}的值
    // 进行相应的逻辑处理
    return "User details for ID: " + id;
}
  1. @RequestBody:用于处理请求体中的JSON或XML数据。它可以将请求正文的JSON或XML数据绑定到相应的Java对象上。例如,当客户端发送一个POST请求到/users时,请求体中可能包含一个JSON对象,我们可以使用@RequestBody注解将其绑定到User对象上,如下所示:
java 复制代码
@PostMapping("/users")
public String createUser(@RequestBody User user) {
    // 在这里,user对象将接收请求体中的JSON数据
    // 进行相应的逻辑处理
    return "User created successfully";
}
  1. @RequestParam:用于处理URL路径中的请求参数(query string或form data)。它可以将请求参数绑定到控制器处理方法的参数上。例如,当客户端发送一个GET请求到/users?name=John时,可以使用@RequestParam注解将name参数绑定到方法的参数上,如下所示:
java 复制代码
@GetMapping("/users")
public String getUsersByName(@RequestParam String name) {
    // 在这里,name参数将接收请求参数中的name值
    // 进行相应的逻辑处理
    return "Users with name: " + name;
}

@PathVariable和@RequstParam注解可以应用于任何类型的参数,包括基本类型、String、Integer等,而@RequestBody注解则仅适用于处理请求体中的JSON或XML数据,而且通常用于绑定到Java对象上。

@ResponseBody注解

@ResponseBody注解是Spring MVC框架中的常用注解之一。它的作用是将controller层中的方法的返回值对象转换成相应的格式,然后将其写入到HttpServletResponse响应体中。

当Controller的方法需要返回数据给客户端时,通常情况下会将返回值封装为ModelAndView对象,然后通过视图处理器将其转换为特定的格式(如HTML、JSON、XML等)后输出给客户端。

而@ResponseBody注解的作用是将Controller的方法返回值直接写入到HTTP响应的body中,从而省略了视图处理器的转换步骤,直接将数据返回给客户端。

例如,在某个Controller中有一个方法需要返回一个JSON格式的数据给客户端,那么可以在该方法上添加@ResponseBody注解,然后将返回值对象转换为JSON格式后写入到HttpServletResponse响应体中,如下所示:

java 复制代码
@Controller
public class ExampleController {
    @RequestMapping("/example")
    @ResponseBody
    public ExampleData getExampleData() {
        // 从数据库或其他地方获取要返回的数据
        ExampleData data = new ExampleData();
        data.setId(1);
        data.setName("John");
        return data;
    }
}

在这个例子中,@ResponseBody注解将ExampleData对象转换为JSON格式后写入到HttpServletResponse响应体中,从而直接将JSON数据返回给客户端。

@RestController

它结合了@Controller和@ResponseBody的功能,@Controller 注解可以用于标记一个类作为控制器类,@ResponseBody将controller层中的方法的返回值对象转换成相应的格式

@RequestMapping

@RequestMapping注解告诉Spring MVC将所有以"/users"为前缀的URL请求转发给该控制器。

相关推荐
没什么本事1 分钟前
Springboot CGLIB 代理对象问题
java·spring boot·spring
好好沉淀1 分钟前
开发过程中动态 SQL 中where 1=1的作用是什么
java·服务器·开发语言·数据库·sql
Javatutouhouduan1 分钟前
SpringBoot整合reids之JSON序列化文件夹操作
java·spring boot·spring·bootstrap·html·后端开发·java架构师
她说..3 分钟前
Spring AOP场景5——异常处理(附带源码)
java·数据库·后端·spring·springboot·spring aop
醇氧8 分钟前
springAI学习 (二) 模型
java·学习·spring·ai·ai编程
风月歌11 分钟前
小程序项目之驾校报名小程序源代码(java+vue+小程序+mysql)
java·vue.js·mysql·小程序·毕业设计·源码
毕设源码-赖学姐12 分钟前
【开题答辩全过程】以 高校课程建设管理系统为例,包含答辩的问题和答案
java·eclipse
05大叔17 分钟前
苍穹外买Day05
java·开发语言
代码or搬砖19 分钟前
Java集合-List讲解
java·开发语言·list
0和1的舞者19 分钟前
《MyBatis 从入门到上手:超全基础操作 + XML 配置指南》
数据库·spring boot·学习·spring·mybatis·框架·开发