🏷️ @Controller

정의

@ControllerSpring MVC에서 요청을 받아 화면(View)이나 처리 결과를 반환하는 컨트롤러를 선언하는 애너테이션이다.

주로 JSP, Thymeleaf 같은 뷰 렌더링 기반 웹 화면을 처리할 때 사용한다.

⚙️ 역할

  • Spring MVC에서 웹 요청을 처리한다.
  • 주로 View를 반환하는 데 사용한다.
  • 요청 URL과 메서드를 연결하는 컨트롤러 역할을 한다.

참고

@Controller에서 데이터를 직접 반환하려면 @ResponseBody를 함께 사용해야 한다.
JSON 응답이 목적이라면 보통 @RestController를 사용하는 편이 더 자연스럽다.

🧩 의존성 예시

dependencies {
    implementation 'org.springframework:spring-webmvc:5.3.22'
}
  • @Controller는 Spring MVC 환경에서 주로 사용하므로 spring-webmvc 의존성과 함께 보는 편이 자연스럽다.

🧪 사용 예시

@Controller
@RequestMapping("/test")
public class ApiTestController {

    @GetMapping("")
    public String testPage() {
        return "test";
    }

    @GetMapping("/data")
    @ResponseBody
    public String testString() {
        return "test success";
    }
}

🔍 @Controller@RestController

  • @Controller는 기본적으로 View 반환에 적합하다.
  • @RestController@Controller@ResponseBody를 합친 형태다.
  • API 응답만 다룬다면 @RestController가 더 편하다.

📌 정리

  • @Controller는 Spring MVC의 화면 처리용 컨트롤러다.
  • 뷰를 반환하는 데 주로 사용한다.
  • 데이터를 직접 반환하려면 @ResponseBody가 필요하다.
  • JSON API 중심이면 @RestController를 고려하는 편이 좋다.

연결문서

댓글남기기