概述:
SpringMVC 是 Spring 框架中用于构建基于 Web 的应用的模块,它通过注解方式简化了开发工作。以下是一些常用的 SpringMVC 注解:
注解名称 | 解释 |
---|---|
@Controller | 用于定义控制器类的注解。控制器类中包含处理用户请求的方法。 |
@ResponseBody | 用于将方法的返回值直接写入 HTTP 响应体中。它常用于返回 JSON 或 XML 数据,适合构建 RESTful API。 |
@RestController | 是 @Controller 的一个特化版本,通常用于构建 RESTful Web 服务。它相当于 @Controller和 @ResponseBody的组合,方法的返回值会直接写入 HTTP 响应体中,而不是返回视图名称。 |
@RequestMapping | 用于映射 HTTP 请求到处理方法上,可以用于类或方法上。它支持指定 URL、HTTP 方法、请求参数等。(也称为url的窄化)。 在类上:请求URL 的第一级访问目录。不写的话,就相当于应用的根目录。 方法上:请求 URL 的第二级访问目录,与类上的使用。 |
@GetMapping @PostMapping @PutMapping @DeleteMapping | 这些是 @RequestMapping的变种,分别用于处理 GET、POST、PUT 和 DELETE 请求。它们是快捷方式,简化了开发。 |
@PathVariable | 用于绑定 URL 中的占位符参数 |
@RequestParam | 用于获取请求 URL 中的查询参数或表单参数。它可以设置默认值和是否必填。 |
@RequestBody | 用于将请求体的内容绑定到方法参数上,常用于处理 JSON 数据。 |
@ModelAttribute | 用于在控制器方法中将模型数据绑定到对象上,通常用于表单提交时的数据绑定。它也可以用来预先将数据添加到模型中,供视图使用。 |
@ExceptionHandler | 用于处理控制器方法中抛出的异常,提供局部异常处理。 |
这些注解极大地简化了 SpringMVC 中的开发工作,帮助开发者快速构建功能完善的 Web 应用。
注意:如果控制器是为 REST API 服务设计的,不需要返回视图,只处理数据交互,@RestController 是更简洁和直接的选择。如果控制器既需要返回页面,又需要提供 RESTful 数据接口,@Controller + @ResponseBody 组合会更灵活,能够处理多种类型的响应。