본문 바로가기
Spring

[Spring] Controller 구조 및 핸들러 메서드(Handler Method)

by jungha_k 2022. 10. 21.

 

API 계층 = 클라이언트의 요청을 직접적으로 전달 받는 계층

 

Controller = 클라이언트 요청의 최종 목적지(엔드포인트)

 

애플리케이션 엔트리포인트 = main() 메서드가 포함된, 애플리케이션의 시작점

 

 

@SpringBootApplication : 스프링 부트 애플리케이션 엔트리포인트 어노테이션

 

1. 자동 구성을 활성화

2. 애플리케이션 패키지 내에서 자동으로 @Component 를 스캔해주고, Spring Bean 으로 등록

3. @Configuration 클래스 찾아주고, 추가적으로 Spring Bean 등록

 

 

* @Component  vs @Configuration 

1) @Component - 개발자가 직접 작성한 클래스 직접 bean 으로 등록

2) @Configuration + @Bean - 라이브러리 혹은 내장 클래스등 개발자가 직접 제어가 불가능한 클래스의 경우

메서드 등에 직접 @Bean 달아서 등록


Controller ex)

package com.codestates.member;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController   
@RequestMapping("/v1/members") 
public class MemberController {
}

@RestController

1. 특정 리소스에 추가시 해당 클래스가 REST API의 리소스를 처리하기 위한 

API 엔드포인트로 동작함을 정의한다

2. @RestController 추가되어있으면 Spring Bean으로 등록해줌

 

 

@RequestMapping

1. 클라이언트 요청 ~ 핸들러 메서드를 매핑해줌  (*핸들러 메서드 : 클라이언트 요청을 처리)

2. 클래스 전체에 사용되는 공통 URL (Base URL) 설정해줌

 

 

*REST API URI 작성 규칙

1. 마지막이 '/'로 끝나지 않을 것

2. 동사 < 명사

3. 단수형 < 복수형

4. 기본 소문자

5. '_' 대신에 '-' 사용

 

 


핸들러 메서드 (Handler Method)

 

@PostMapping

: 클라이언트 요청 데이터(Request Body)를 서버에 생성 때 사용

 

@RequestParam

: 핸들러 메서드의 '파라미터' 종류 중 하나

클라이언트에서 쿼리 파라미터, 폼 데이터, x-www-form-urlencoded 형식으로 전송할 경우

서버쪽에서 전달 받을 때 사용하는 어노테이션

 

@GetMapping

: 클라이언트가 서버에 리소스를 조회할 때 사용하는 어노테이션

 

@PathVariable

: 핸들러 메서드 파라미터 종류 중 하나 

 

+

@PutMapping : 리소스의 모든 정보 수정시에 사용

@PatchMapping : 리소스의 일부 정보수정시에 사용

@DeleteMapping : 서버의 리소스 삭제할 때 사용

 

 

 

*핸들러 메서드 파라미터 추가 학습

 

Controller 핸들러 메서드의 Argument 알아보기

Controller의 핸들러 메서드는 다양한 유형의 Argument(인수)를 지원합니다. 그 중에서 REST API 애플리케이션에서 자주 사용되는 유형의 Argument를 간단히 살펴보도록 하겠습니다. Method Argument 설명 @Reque

itvillage.tistory.com

@RequestBody 정도만 눈에 익숙하다.

 

 


Controller 속 ResponseEntity 객체 :

HTTP 요청(Request) or 응답(Response)에 해당하는 HttpHeader와 HttpBody를 포함하는 클래스

댓글