본문 바로가기
Framekwork/SPRING

[SPRING BOOT] 스프링 부트 @Controller @RestController

by 아이엠제니 2024. 8. 13.

 

 

`@Controller`와 `@RestController`는 Spring Framework에서 사용되는 애노테이션임

 

 

 

1. @Controller


  • 웹 애플리케이션에서 HTML을 생성하고 반환하는 데 사용됨
  • 전통적인 MVC(Model-View-Controller) 패턴에서 컨트롤러 역할을 함
  • 메서드에서 반환하는 값은 보통 뷰 이름으로 해석되어, `ViewResolver`가 이를 실제 HTML 파일이나 템플릿으로 변환함
@Controller
public class TestController {
    @GetMapping("/hello")
    public String hello(Model model) {
        model.addAttribute("message", "Hello, World!");
        return "hello"; // View name
    }
}
  • return "hello"는 뷰 이름임
  • `hello.html` 같은 템플릿 파일이 반환됨

 

 

 

2. @RestController


  • RESTful 웹 서비스를 개발할 때 사용됨
  • 클라이언트에 JSON, XML 등과 같은 데이터를 직접 반환함
  • `@RestController`는 `@Controller`와 `@Responsebody`가 결합된 것으로, 메서드에서 반환하는 값이 뷰를 통해 렌더링되지 않고, 직접 HTTP 응답 본문으로 변환됨
@RestController
public class TestRestController {
    @GetMapping("/api/hello")
    public Map<String, String> hello() {
        Map<String, String> response = new HashMap<>();
        response.put("message", "Hello, World!");
        return response;
    }
}
  • `Map` 객체가 JSON 형식으로 클라이언트에게 반환됨

 

 

 

참고
OpenAi. (2024) ChatGPT (version 3.5)[Large Language model]. https://chat.openai.com

 

 

 

 

 

300x250