@GetMapping 是 Spring Boot 中映射 HTTP GET 请求的快捷注解,等价于 @RequestMapping(method = RequestMethod.GET),支持路径变量、请求参数、RESTful 设计及与 @ResponseBody、@ResponseStatus 等协同使用。

@GetMapping 是 Spring Boot 中用于映射 HTTP GET 请求的注解,本质是 @RequestMapping(method = RequestMethod.GET) 的快捷写法,用在控制器方法上,让方法只响应 GET 类型的请求。
基本用法:绑定路径和返回数据
最简单的使用方式是直接标注在 Controller 方法上,指定请求路径,并返回字符串、对象或视图名:
- 返回字符串(作为响应体):// 默认 Content-Type 是 text/plain
- 返回对象(自动转为 JSON):// 需类路径下有 Jackson 依赖,且方法不加 @ResponseBody 时需类上有 @RestController
- 返回视图名(跳转页面):// 需搭配 @Controller + 视图解析器(如 Thymeleaf)
示例:
@RestController
public class UserController {
@GetMapping("/users")
public List<user> getAllUsers() {
return Arrays.asList(new User("Alice"), new User("Bob"));
}
}</user>
支持路径变量和请求参数
可以通过 {} 占位符提取 URL 路径中的变量,用 @PathVariable 接收;也可用 @RequestParam 获取查询参数(?key=value):
-
@GetMapping("/users/{id}")→ 匹配/users/123,用@PathVariable Long id获取 -
@GetMapping("/users")→ 匹配/users?name=Tom&age=25,用@RequestParam String name和@RequestParam Integer age接收 - 参数可设默认值和是否必需:
@RequestParam(value = "page", defaultValue = "1") int page,@RequestParam(required = false) String sort
处理静态资源与 RESTful 设计
GET 请求应只用于安全、幂等的数据获取操作,不修改服务端状态。常见实践包括:
- 获取列表:
@GetMapping("/api/users") - 获取单个资源:
@GetMapping("/api/users/{id}") - 条件查询:
@GetMapping("/api/users/search"),配合多个@RequestParam - 注意避免在 GET 中传递敏感信息(如密码、token),也不应在 URL 中暴露过多业务逻辑细节
与其他注解协同使用
@GetMapping 常与以下注解配合增强功能:
-
@ResponseStatus(HttpStatus.OK):显式设置 HTTP 状态码 -
@ResponseBody:强制将返回值写入响应体(在@Controller下需要,@RestController已默认包含) -
@CrossOrigin:允许跨域请求(开发阶段常用) -
@Cacheable(配合 Spring Cache):对 GET 结果做缓存,提升性能
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











