@Controller
🏷️ @Controller
정의
@Controller는 Spring 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를 고려하는 편이 좋다.
댓글남기기