Written by
Sunwoo Han
on
on
스프링 MVC 기본 기능 - 요청 매핑
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술을 공부하고 정리하는 포스트입니다.
요청 매핑
- 매핑 정보
@RestController
@Controller
는 반환 값이 String이면 뷰 이름으로 인식됨 -> 뷰를 찾고 뷰가 랜더링@RestController
는 반환 값으로 뷰를 찾는 것이 아닌, HTTP 메시지 바디에 바로 입력 -> 실행 결과로 ok 메세지를 받는 것이 가능
@RequestMapping("/hello-basic")
/hello-basic
URL 호출이 오면 메서드가 실행되도록 매핑- 대부분의 속성을 배열로 제공하므로 다중 설정이 가능
ex)
{"/hello-basic", "/hello-go"}
HTTP 메서드
@RequestMapping
에 method 속성으로 HTTP 메서드를 지정하지 않으면 HTTP 메서드와 무관하게 호출됨
축약 매핑
- HTTP 메서드를 축약한 애노테이션을 사용하는 방식 : 더 직관적 -> 권장
- 코드 내부에서
@RequestMapping
과method
를 지정해 사용하는 것을 확인할 수 있음
- 코드 내부에서
PathVariable(경로 변수) 사용
- 최근 HTTP API의 스타일
- 리소스 경로에 식별자를 넣음
/mapping/userA
/users/1
@RequestMapping
은 URL 경로를 템플릿화 가능 ->@PathVariable
을 사용하면 매칭되는 부분을 편리하게 조회 가능@PathVariable
의 이름과 파라미터 이름이 같으면 생략 가능
PathVariable 사용 - 다중
다양한 옵션
params : 특정 파라미터 조건 매핑
- Query String으로 넘어온 데이터에 특정 파라미터가 존재할 때 매핑되는 방식
- 특정 파라미터가 있거나 없는 조건 추가 가능
headers : 특정 헤더 조건 매핑
- HTTP request의 header에 특정 값이 있을 때 매핑되는 방식
consumes : Content-Type 매핑
- HTTP request의 header에 있는 Content-Type 필드 값에 따라 매핑되는 방식
- Content-Type은 사용자가 보내는 request body의 데이터에 대한 미디어 타입을 의미
HTTP status 415
: Unsupported Media Type
produce : Accept 매핑
- HTTP request의 header에 있는 Accept 필드 값에 따라 매핑되는 방식
- Accept 필드는 사용자가 응답(response)으로 받을 수 있는 데이터에 대한 미디어 타입을 의미
HTTP status 406
: Not Acceptable
요청 매핑 - API 예시
@RequestMapping("/mapping/users")
- 클래스 레벨에 매핑 정보를 두면 메서드 레벨에서 해당 정보를 조합해서 사용함
Comments
SPRING 의 다른 글
-
스프링 타입 컨터버 24 Jun 2022
-
API 예외 처리 17 Jun 2022
-
예외 처리와 오류 페이지 12 Jun 2022
-
로그인 처리 - 인터셉터 08 Jun 2022
-
로그인 처리 - 필터 06 Jun 2022
-
로그인 처리 - 쿠키, 세션 31 May 2022
-
Bean Validation 22 May 2022
-
검증 22 May 2022
-
메시지, 국제화 21 May 2022
-
타임리프 - 스프링 통합과 폼 19 May 2022
-
타임리프 - 기본 기능 10 May 2022
-
스프링 MVC 기본 기능 - 웹 페이지 만들기 02 May 2022
-
스프링 MVC 기본 기능 - HTTP 응답 30 Apr 2022
-
스프링 MVC 기본 기능 - HTTP 요청 24 Apr 2022
-
스프링 MVC 기본 기능 - 요청 매핑 19 Apr 2022
-
스프링 MVC 기본 기능 19 Apr 2022
-
스프링 MVC 구조 이해 14 Apr 2022
-
MVC 프레임워크 만들기 - V4, V5 12 Apr 2022
-
MVC 프레임워크 만들기 - V1, V2, V3 09 Apr 2022
-
서블릿, JSP, MVC 패턴 05 Apr 2022
-
서블릿 29 Mar 2022
-
웹 애플리케이션 이해 24 Mar 2022
-
스프링 웹 계층이란? 05 Nov 2021
-
스프링 시큐리티 공식문서 번역 27 Sep 2021
-
스프링 AOP 총정리 : 개념, 프록시 기반 AOP, @AOP 27 Apr 2021
-
SpEL (스프링 Expression Language) 25 Apr 2021
-
데이터 바인딩 추상화 : Converter와 Formatter 21 Apr 2021
-
데이터 바인딩 추상화 : PropertyEditor 12 Apr 2021
-
Validation 추상화 10 Apr 2021
-
Resource 추상화 08 Apr 2021
-
IoC 컨테이너 9부 07 Apr 2021
-
IoC 컨테이너 8부 06 Apr 2021
-
IoC 컨테이너 7부 02 Apr 2021
-
IoC 컨테이너 6부 29 Mar 2021
-
IoC 컨테이너 5부 27 Mar 2021
-
IoC 컨테이너 4부 23 Mar 2021
-
IoC 컨테이너 3부 20 Mar 2021
-
IoC 컨테이너 2부 18 Mar 2021
-
IoC 컨테이너 1부 12 Mar 2021
-
스프링 PSA 07 Jan 2021
-
스프링 @AOP 실습 07 Jan 2021
-
프록시 패턴 06 Jan 2021
-
스프링 AOP 04 Jan 2021
-
의존성 주입(Dependency Injection) 04 Jan 2021
-
스프링 빈(Bean) 02 Jan 2021
-
스프링 IoC 컨테이너 01 Jan 2021
-
스프링 IoC 01 Jan 2021