일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 이코테2021
- 기사단원의 무기 파이썬
- RDBMS와 NoSQL 차이
- 알고리즘 1000000007 나누기
- java 동기화
- 모듈로 연산
- PCB
- 프로그래머스 142086
- 달리기 경주 파이썬
- DDL DML DCL 차이
- 백트래킹
- @RequestMapping과 @GetMapping
- 정규화 장단점
- 빌드관리도구
- 웹 동작 과정
- OOP의 특징
- Python 1000000007
- Spring Security 버전 문제
- 빌드관리도구 차이
- Spring Security 5
- 프로세스
- commit message convention
- MySQL RIGHT()
- 기사단원의 무기 제곱근
- 스프링 부트와 AWS로 혼자 구현하는 웹 서비스
- finalize 수동 호출
- www.google.com 검색하면 일어나는 일
- build.gradle 설정 오류
- MySQL LEFT()
- 달리기 경주 파이썬 시간초과
- Today
- Total
BUILD_SSO
[Spring] @RequestMapping과 @GetMapping의 차이 본문
컨트롤러의 메서드에 @RequestMapping을 명시하게 되면 요청에 대해 어떤 컨트롤러, 어떤 메소드가 처리될지를 맵핑하는 어노테이션이다. 그렇다면, @RequestMapping과 @GetMapping(PostMapping, PutMapping, DeleteMapping)의 차이는 무엇일까?
일반적으로 컨트롤러의 메서드에 @RequestMapping 어노테이션을 붙이면 해당 URL이 호출될 때 이 메서드가 호출된다. 이 어노테이션을 기반으로 동작하게되므로 HTTP 메서드 별로 호출 메서드의 이름을 임의로 지을 수 있다.
@Controller
public class BoardController {
@RequestMapping(value = "/board", method = RequestMethod.GET)
public String showBoardPage() {
...
return "board";
}
.../board URL이 호출되면 showBoardPage 메서드가 호출된다.
한 클래스 안에 중복되는 경로(URL)가 있다면 최상단에 경로를 따로 뺄 수 있다.
단, @RequestMapping은 Class와 Method에 붙일 수 있고, @GetMapping, @PostMapping, @PutMapping, @DeleteMapping 등은 Method에만 붙일 수 있다.
@Controller
@RequestMapping("/board")
public class BoardController {
@RequestMapping(method = RequestMethod.GET)
public String showBoardPage() {
...
return "board";
}
위와 같은 method 옵션을 이용해 GET, POST, PUT, DELETE 방식을 구별하는 것은 번거롭고 귀찮다. 이를 대신해 사용할 수 있는 방식이 바로 @GetMapping, @PostMapping 어노테이션 방식이다.
@RequestMapping 대신 역할에 맞는 메소드의 이름을 가진 @GetMapping(PostMapping, PutMapping, DeleteMapping)으로도 사용 가능하다.
@Controller
public class BoardController {
@GetMapping("/board")
public String showBoardPage() {
...
return "board";
}
@GetMapping은 구조적으로 @RequestMapping(valaue="", method = RequestMethod.GET)과 같다.
이것을 확인하려면 속칭 어노테이션을 까(?)보면 확인할 수 있는데, @GetMapping의 class 파일을 확인해보면 아래와같이 RequestMethod.GET이 포함되어있는걸 확인할 수 있다.
PostMapping, PutMapping, DeleteMapping도 마찬가지로 각 역할에 맞는 HTTP Method가 클래스파일 안에 포함되어있다.
그래서 RequestMapping과 GetMapping, PostMapping, PutMapping, DeleteMapping은 같은 역할을 하는것이다.
method = {RequestMethod.POST}
'Spring' 카테고리의 다른 글
[Spring] Maven vs Gradle 의 차이점과 특징 (0) | 2023.06.23 |
---|