Framekwork/SPRING
[SPRING BOOT] 스프링 부트 @Controller @RestController
아이엠제니
2024. 8. 13. 20: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