Junior — Middle
61
Каким образом контроллер определяет, какой метод обработать в зависимости от HTTP-запроса?
Answer from AI
sobes.tech AI
В Java веб-фреймворках (например, Spring MVC) контроллеры используют аннотации для сопоставления HTTP-запросов с методами.
Основной механизм:
- Аннотация, например,
@GetMapping,@PostMappingили@RequestMapping, указывает путь и HTTP-метод. - При поступлении запроса фреймворк анализирует URL и HTTP-метод.
- Находит метод контроллера с подходящей аннотацией, соответствующей пути и методу запроса.
- Вызывает этот метод для обработки запроса.
Пример:
@RestController
@RequestMapping("/users")
public class UserController {
@GetMapping("/{id}")
public User getUser(@PathVariable String id) {
// обработка GET /users/{id}
return userService.findById(id);
}
@PostMapping
public User createUser(@RequestBody User user) {
// обработка POST /users
return userService.save(user);
}
}
Здесь при GET-запросе на /users/123 вызовется метод getUser, а при POST на /users — createUser. Фреймворк сам разбирает HTTP-запрос и определяет нужный метод.