Spring MVC 提供了丰富的注解来简化 Web 应用的开发。以下是一些常用的注解及其功能分类:一、请求映射注解用于将 HTTP 请求映射到控制器的处理方法。@RequestMapping通用的请求映射,可指定路径、方法、请求头、参数等。示例:
派生注解(简化版)@GetMapping:处理 HTTP GET 请求。@PostMapping:处理 HTTP POST 请求。@PutMapping:处理 HTTP PUT 请求。@DeleteMapping:处理 HTTP DELETE 请求。@PatchMapping:处理 HTTP PATCH 请求。二、控制器注解用于定义控制器类。@Controller标记一个类为 Spring MVC 控制器,需配合 @RequestMapping 使用。@RestController@Controller + @ResponseBody 的组合注解,直接返回 JSON/XML 等数据。示例:java
三、请求参数注解用于从请求中获取参数。@PathVariable从 URL 路径中获取变量(如 /users/{id})。示例:java
@RequestParam从 URL 查询参数中获取值(如 ?name=John)。示例:java
@RequestBody将请求体(如 JSON/XML)转换为 Java 对象。示例:java
@RequestHeader获取请求头中的值。示例:java
@CookieValue获取 Cookie 中的值。示例:java
四、会话与请求域注解用于管理会话和请求范围内的数据。@SessionAttributes将模型中的属性存储到 HTTP 会话中。示例:java
@ModelAttribute绑定请求参数到模型对象,或从会话中获取模型属性。示例:java
五、异常处理注解用于处理控制器中的异常。@ExceptionHandler处理控制器方法抛出的特定异常。示例:java
@ControllerAdvice全局异常处理类,配合 @ExceptionHandler 使用。示例:java
六、数据验证注解用于参数校验(依赖 JSR-303 规范)。@Valid触发 Bean Validation 校验。示例:java
常用校验注解@NotNull:字段不为 null。@NotEmpty:字符串不为空或空字符串。@Size:字符串 / 集合长度限制。@Email:验证邮箱格式。@Min/@Max:数值范围限制。七、其他注解@ResponseBody将方法返回值直接写入响应体,常用于 RESTful 接口。@ResponseStatus设置 HTTP 响应状态码。示例:java
@CrossOrigin解决跨域请求问题。示例:java
@Async异步处理请求(需配合 @EnableAsync)。总结Spring MVC 注解通过简化配置和提供清晰的语义,大大提高了 Web 开发效率。合理使用这些注解可以让代码更简洁、更易维护。如果需要更具体的示例或深入讲解某个注解,请告诉我!