SpringMVC中有许多注解,它们用于简化开发,提高代码的可读性,其中一些常用的注解包括:
1. 控制器相关注解:
`@Controller`: 将一个类标识为Spring MVC控制器。
`@RestController`: 是 `@Controller` 的变体,用于标识RESTful风格的控制器,常用于返回JSON等。
2. 请求映射注解:
`@RequestMapping`: 映射请求路径和HTTP方法到处理方法。
`@GetMapping`, `@PostMapping`, `@PutMapping`, `@DeleteMapping`: 缩写形式的 `@RequestMapping`,用于指定不同的HTTP方法。
3. 请求参数注解:
`@RequestParam`: 用于将请求参数绑定到方法的参数。
`@PathVariable`: 用于将URI模板变量绑定到方法的参数。
4. 请求体注解:
`@RequestBody`: 用于将请求的内容体(JSON、XML等)绑定到方法的参数。
5. 表单提交注解:
`@ModelAttribute`: 用于将请求参数绑定到模型对象。
`@ModelAttribute`(在方法参数上): 用于将方法的返回值添加到模型中。
6. Session 相关注解:
`@SessionAttribute`: 用于将模型中的属性暴露给Session。
`@SessionAttributes`: 指定模型属性应该存储在会话中,以供多个请求之间共享。
7. 响应体注解:
`@ResponseBody`: 表示方法返回的对象直接写入响应体,而不是解析为视图。
`@ResponseStatus`: 指定响应的HTTP状态码。
8. 异常处理注解:
`@ExceptionHandler`: 定义处理特定异常的方法。
`@ControllerAdvice`: 用于定义全局的异常处理器。
9. 重定向和视图注解:
`@RedirectAttributes`: 用于在重定向中传递数据。
`@ModelAttribute`(在方法上): 用于将方法的返回值添加到模型中,以供视图使用。
10. 文件上传相关注解:
`@RequestPart`: 用于将请求的一部分(通常是文件)绑定到方法的参数。
这只是SpringMVC中常用注解的一小部分,还有其他一些注解,根据具体需求和场景选择使用。这些注解使得开发者能够更简洁、更灵活地处理请求和响应。