본문 바로가기
기타 프로그래밍/스트링부트

스트링부트 | 컨트롤러 Controller

by YUNI Heo 2023. 5. 2.
반응형

 

✅ 컨트롤러 Controller

서버에 전달된 클라이언트의 요청(URL과 전달된 파라미터 등)을 처리하는 자바 클래스이다.

웹 애플리케이션에서 사용자가 요청한 URL에 해당하는 컨트롤러가 선택되고, 컨트롤러는 해당 요청을 처리하기 위해 비즈니스 로직(Business Logic)을 호출하고 결과를 클라이언트에 반환한다.


Spring MVC에서는 컨트롤러에서 처리한 데이터를 View에 전달하여 HTML 등의 문서를 생성하고 클라이언트에게 전송하는 방식으로 동작한다.

컨트롤러의 역할은 요청을 처리하고 적절한 데이터를 View에 전달하는 것이다.


💡 @Controller 애너테이션

  • 해당 클래스가 Spring MVC에서 컨트롤러로 동작하도록 설정한다.
  • @Controller 애너테이션이 있어야 스프링부트 프레임워크가 컨트롤러로 인식한다.

 

💡 @GetMapping("/hello") 애너테이션

  • HTTP GET 요청을 처리하는 메서드를 지정한다.
  • 어노테이션이 붙은 메소드는 지정된 URL 주소와 매핑한다.
    • URL명과 메서드명은 동일할 필요는 없다.
    • 도메인명과 포트는 서버 설정에 따라 변하기 때문에 http://localhost:8080 과 같은 도메인명과 포트는 적지 않는다.
  • Get 방식의 URL 요청은 GetMapping을 사용한다.
  • Post 방식의 URL 요청은 PostMapping을 사용한다.

 

💡 @ResponseBody 애너테이션

  • hello 메서드의 응답 결과가 문자열 그 자체임을 나타낸다.
  • URL과 매핑된 함수는 결괏값을 리턴해야 하는데 아무런 값도 리턴하지 않으면 500 오류코드가 발생한다.
    • hello 메서드는 "Hello World"라는 문자열을 리턴하므로 "Hello World" 문자열을 출력한다.

package com.mysite.sbb;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller // 이 클래스가 Spring MVC의 컨트롤러임을 나타냄
public class HelloController {
    @GetMapping("/hello") // HTTP GET 요청을 처리하는 메소드임을 나타냄. "/hello" 경로로 요청이 들어오면 이 메소드가 처리함.
    @ResponseBody // 이 메소드가 반환하는 값을 HTTP 응답의 본문(body)으로 사용하도록 지정
    public String hello() {
        return "Hello World"; // "Hello World" 문자열 반환
    }
}
반응형