@GetMapping
является сокращением для @RequestMapping(method = RequestMethod.GET)
.
В вашем случае.
@GetMapping(path = "/usr/{userId}")
является сокращением для @RequestMapping(value = "/usr/{userId}", method = RequestMethod.GET)
.
Оба эквивалентны. Предпочитаю использовать сокращение @GetMapping
вместо более многословной альтернативы. Одна вещь, которую вы можете сделать с @RequestMapping
, которую вы не можете сделать с @GetMapping
, - это предоставить несколько методов запроса.
@RequestMapping(value = "/path", method = {RequestMethod.GET, RequestMethod.POST, RequestMethod.PUT)
public void handleRequet() {
}
Используйте @RequestMapping
, когда вам нужно указать несколько глаголов Http.
Другое использование @RequestMapping
- это когда вам нужно указать путь верхнего уровня для контроллера. Например,
@RestController
@RequestMapping("/users")
public class UserController {
@PostMapping
public void createUser(Request request) {
// POST /users
// create a user
}
@GetMapping
public Users getUsers(Request request) {
// GET /users
// get users
}
@GetMapping("/{id}")
public Users getUserById(@PathVariable long id) {
// GET /users/1
// get user by id
}
}