Sobes.tech
Junior — Middle
69

Объясните, каким образом осуществляется маршрутизация запросов с помощью аннотации @RequestMapping в Spring?

Answer from AI

sobes.tech AI

Аннотация @RequestMapping в Spring используется для маршрутизации HTTP-запросов к методам контроллера. Она связывает URL-путь и HTTP-метод с конкретным методом в классе.

Принцип работы:

  • @RequestMapping можно применять как на уровне класса, так и на уровне метода.
  • На уровне класса задаётся базовый путь, а на уровне метода — конкретные подмаршруты.
  • Аннотация позволяет указать путь (value или path), HTTP-методы (method), заголовки, параметры и другие условия.

Пример:

@RestController
@RequestMapping("/users") // базовый путь для всех методов этого контроллера
public class UserController {

    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
    public User getUser(@PathVariable("id") String userId) {
        // обработка GET-запроса по пути /users/{id}
        return userService.findUserById(userId);
    }

    @RequestMapping(method = RequestMethod.POST)
    public User createUser(@RequestBody User user) {
        // обработка POST-запроса по пути /users
        return userService.createUser(user);
    }
}

Таким образом, при поступлении HTTP-запроса Spring ищет метод с подходящей аннотацией @RequestMapping, соответствующей пути и HTTP-методу, и вызывает его для обработки запроса.