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请求转发给该控制器。

相关推荐
史蒂芬_丁6 分钟前
C++深度拷贝例子
java·开发语言·c++
云烟成雨TD19 分钟前
Spring AI Alibaba 1.x 系列【4】ReAct 范式与 ReactAgent 核心设计
java·人工智能·spring
「QT(C++)开发工程师」1 小时前
C++11三大核心特性深度解析:类型特征、时间库与原子操作
java·c++·算法
乐分启航1 小时前
SliMamba:十余K参数量刷新SOTA!高光谱分类的“降维打击“来了
java·人工智能·深度学习·算法·机器学习·分类·数据挖掘
yoothey2 小时前
Java字节流与字符流核心笔记(问答+考点复盘)
java·开发语言·笔记
black方块cxy2 小时前
实现一个输入框多个ip以逗号分隔最多20组,且ip不能重复
java·服务器·前端
23.3 小时前
【Java】char字符类型的UTF-16编码解析
java·开发语言·面试
怒放吧德德3 小时前
Spring Boot实战:InfluxDB 2.x简单教程
java·spring boot·后端
indexsunny3 小时前
互联网大厂Java面试实战:核心技术与业务场景深度解析
java·spring boot·hibernate·security·microservices·interview
是小蟹呀^3 小时前
Java中的继承:从入门到精通
java·继承