Spring MVC 에서 주로 사용되는 어노테이션으로, 웹 어플리케이션에서 요청을 처리하고 그에 대한 응답을 생성하는 클래스에 사용됨. 주로 웹 요청을 처리하고, 모델 데이터를 준비하여, 사용자에게 반환할 뷰를 선택하는 역할을 함
@Controller 는 HTTP 요청을 처리하는 메서드를 가진 클래스를 정의할 때 사용됨. 이 클래스는 주로 웹 어플리케이션의 프론트엔드와 백엔드를 연결하는 역할을 함@Controller 에서 처리된 요청은 보통 뷰(HTML 페이지, JSP, Thymeleaf 템플릿 등) 를 반환함. 이 뷰는 사용자가 볼 수 있는 화면을 렌더링하는 데 사용됨.@Controller 로 마크된 클래스는 Spring의 컴포넌트 스캔에 의해 자동으로 Spring의 빈으로 등록됨. 이는 Spring MVC에서 컨트롤러를 자동으로 감지하고 관리할 수 있게 함@Controller 클래스는 모델(Model)과 뷰(View) 를 연결함. 모델은 컨트롤러에서 처리된 데이터를 담고, 뷰는 해당 데이터를 사용자에게 표시하는 역할을 함import org.springframework.stereotype.Contorller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequsetMapping("/home")
public class HomeController {
@GetMapping
public String homePage(Model model) {
model.addAttribute("message", "Welcome to the Home Page!");
return "home"; // 뷰의 이름을 반환 (예: home.html, home,jsp 등)
}
}
위 예제에서 HomeController 클래스는 @Controller 어노테이션으로 마크되었음. 이 클래스는 /home URL 경로에 대한 HTTP GET 요청을 처리하며, "home" 이라는 이름의 뷰를 반환함. 또한, 모델 객체를 사용하여 뷰에 전달할 데이터를 설정함.
@Controller 는 RESTful 웹 서비스의 경우 @RestController 로 대체될 수 있으며, 이 어노테이션은 데이터(주로 JSON, XML)를 직접 반환하는 API를 만들 때 사용됨