Spring MVC 간단한 내용 정리 (Controller)

Lundy·2023년 11월 23일

Model, View, Controller 간의 처리 흐름

  1. Client: 요청 데이터를 전송
  2. Controller: 요청 데이터를 수신 → 비즈니스 로직 처리
  3. Model: 데이터 생성 → Controller에 Model 데이터 전달
  4. Controller: View에게 Model 데이터 전달
  5. View: 응답 데이터 생성

이번에는 그 중 Controller에 대한 간략한 정리를 해 보았다.

Controller

@RestController
@RequestMapping("/orders")
public class OrderController {
		@PostMapping
    public String postOrder(@RequestParam("name") String name
														@RequestParam("phone") String phone) {
       String response = "{" + name + phone + "}";
			 return response;
    }

    @GetMapping("/{order-id}")
    public ResponseEntity getOrder(@PathVariable("order-id") long orderId) {
        Order order = orderService.findOrder(orderId);

        return null;
    }
}
  • @RestController
    • 해당 클래스가 REST API의 리소스를 처리하기 위한 API 엔드포인트로 동작함을 의미
    • 애플리케이션 로딩 시 스프링빈으로 등록해줌
  • @RequestMapping
    • 클라이언트의 요청을 처리하는 핸들러 메서드를 매핑해줌
    • 클래스 전체에 사용되는 Base URL 설정을 함
  • @PostMapping
    • 핸들러 메서드(postOrder(), getOrder()등)에 붙여서 사용
    • 요청 데이터를 서버에 생성할 때 사용
    • HTTP 메서드 타입을 POST로 맞춰주어야 함
  • @GetMapping
    • 클라이언트가 서버에 리소스를 조회할 때 사용
    • HTTP 메서드 타입을 GET 으로 맞춰주어야 함
  • @RequestParam
    • 핸들러 메서드의 파라미터 종류
    • 클라이언트에서 요청 데이터를 쿼리 파라미터나 폼 데이터 등의 형식으로 전송하면 서버 쪽에서 이를 전달받을 수 있음
  • @PathVariable
    • 핸들러 메서드의 파라미터 종류
    • URI 템플릿 변수값을 메서드 인자로 할당하는 데에 사용함
    • order-id 는 @GetMapping 중괄호 안의 order-id와 같아야 함
profile
아주 사소하더라도

0개의 댓글