@RequestMapping
언제 쓰는걸까?
@RequestMapping
- 컨트롤러 단에서 사용되며, DispatcherServlet이 컨트롤러 파일을 찾고 논리적 주소가 매핑된 메서드를 찾기 위해서 @Controller와 @RequsetMapping을 작성한다.
- 들어온 요청을 특정 메서드와 매핑하기 위해 사용한다.
- @RequestMapping에서 가장 많이 사용하는 부분은 value와 method이다.
- value는 요청 받을 url을 설정하고, method는 어떤 요청을 받을지 정의(GET,POST, PUT 등)한다.
@RequestMapping 코드 예시
@RequestMapping 클래스 레벨에서 요청
@RestController
@RequestMapping(value = "/hello", method = RequestMethod.POST)
public class RegisterController {
...
}
위의 코드처럼 클래스 레벨에서 @RequestMapping을 정의할 경우, method = RequestMethod.POST로 인해 컨트롤러 안의 모든 메서드가 POST 요청만 허용하게 된다. 만약 GET, PUT, DELETE 등 다른 방식의 요청이 들어오게 되면 405(Method Not Allowed) 에러가 발생한다. 그래서 쓸 수는 있지만 다른 방식을 허용하지 않는 단점 때문에 실제로 코드에 적용하는 일은 없다고 보면 된다.
@RequestMapping 메서드 레벨에서 요청
@RestController
public class RegisterController {
@RequestMapping(value = "/register", method = RequestMethod.POST)
public String register() {
...
}
}
메서드 단에서 @RequestMapping을 정의했다. register 메서드는 엔드포인트가 register로 끝나며 POST 방식의 요청만 허용한다. 다른 방식의 요청이 들어오면 405 에러가 발생한다.
Spring이 권장하는 방식
@RestController
@RequestMapping("/hello")
public class RegisterController {
@PostMapping("/register")
public String register() {
...
}
@GetMapping("/check")
public String check() {
...
}
}
한 페이지에서 회원가입 버튼도 있고, 확인 버튼도 있다고 가정해보자. 이때 회원가입 버튼은 POST 방식으로 받아야하고, 확인 버튼은 GET 방식으로 받아도 충분하다.
@RequestMapping을 메서드 레벨에 써주면, 아래와 같은 코드가 완성될 것이다.
@RequestMapping(value = "/hello/register", method = RequestMethod.POST) public String register() { ... } @RequestMapping(value = "/hello/check", method = RequestMethod.GET ) public String check() { ... }
중복 코드가 많이 발생하는 걸 확인할 수 있다. 거기다 공통경로를 수정하게 된다면 메서드를 모두 방문하여 고쳐줘야하는 번거로움이 발생한다.
그래서 클래스 레벨에서 @RequestMapping으로 공통 경로만 작성하고, 메서드 레벨에서 어떤 행위를 하는지만 정의하는 걸 추천한다.
아래에 출처를 남겨두겠습니다.
블로그엔 제가 최대한 이해한 내용까지만 적는거라
출처에 들어가시면 더 많은 내용이 있어 공부하시는데 도움되실겁니다.
🪽
틀린 내용이 있다면 댓글로 알려주세요
[Spring] @RequestMapping이란?
우리는 특정 uri로 요청을 보내면 Controller에서 어떠한 방식으로 처리할지 정의를 한다. 이때 들어온 요청을 특정 메서드와 매핑하기 위해 사용하는 것이 @RequestMapping이다. @RequestMapping에서 가장
mungto.tistory.com
[Spring] @RequestMapping이란 그리고 동작 방식
이번 글에서는 Spring 개발 시 자주 사용하는 @RequestMapping의 개념 및 동작 방식에 대해 정리할 것입니다. [목차] 1. @RequestMapping이란? 2. @RequestMapping 작성 예시 3. @RequestMapping 동작 방식 1. @RequestMapping
backendcode.tistory.com
'🌷 Spring > 개념' 카테고리의 다른 글
[Spring] CORS와 SOP의 의미, @CrossOrigin와 WebMvcConfigurer 코드 예시 (2) | 2025.08.19 |
---|---|
[Spring] REST와 API 그리고 REST API란? (1) | 2025.07.16 |
[Spring] GET과 POST 그리고 @GetMapping (7) | 2024.10.22 |
[Spring] @Controller와 @RestController 그리고 상태코드 (4) | 2024.10.18 |
[Spring] Spring MVC를 알아야 시작이 가능하다. (6) | 2024.10.15 |