🔍 Controller
- Controller는 웹 애플리케이션의 요청과 응답을 처리하는 역할을 한다.
- 사용자의 요청을 받아 해당 요청에 대한 처리를 진행하고, 그 결과를 응답으로 반환한다.
- 일반적으로 MVC 아키텍처에서 컨트롤러는 Model, View 사이의 상호작용을 관리하며, 비즈니스 로직을 처리하지 않습니다.
- 전통적인 Spring MVC의 컨트롤러인 @Controller는 주로 View를 반환하기 위해 사용합니다.
- Spring MVC의 컨트롤러를 사용하면서 Data를 반환해야 하는 경우도 있습니다. 컨트롤러에서는 데이터를 반환하기 위해 @ResponseBody 어노테이션을 활용해주어야 합니다. 이를 통해 Controller도 Json 형태로 데이터를 반환할 수 있습니다.
💻 예시 코드
// view 반환 예시
@Controller
public class ControllerExample {
@RequestMapping("/example1")
public String controllerExample1() {
return "/example1/view";
}
}
// Json 데이터 예시
@Controller
@RequiredArgsConstructor
public class IndexController {
private final PostsService postsService;
@PostMapping("/post")
public @ResponseBody Posts hello(@RequestBody Posts post) {
String id = post.getId();
return postsService.findById(id);
}
}
🔍 RestController
- RestController는 RESTful 웹 서비스를 제공하는데 특화된 컨트롤러입니다.
- RESTful 아키텍처 스타일에 맞춰 HTTP 요청에 대한 응답을 제공합니다.
- 데이터를 JSON 또는 XML 형식으로 객체 데이터를 반환하며, 주로 REST API 개발에 활용됩니다.
- 객체를 ResponseEntity로 감싸서 반환합니다.
💻 예시 코드
@RestController
@RequiredArgsConstructor
public class IndexController {
private final PostsService postsService;
@PostMapping("/post")
public Posts hello(@RequestBody Posts post) {
String id = post.getId();
return postsService.findById(id);
}
}
'Spring Boot' 카테고리의 다른 글
[Spring Boot] @RequestParam & @PathVariable 알아보기 (0) | 2023.06.16 |
---|---|
[SpringBoot] TDD(TestCode) & JUnit 알아보기 (0) | 2023.05.25 |
[Spring Boot] @PathVariable 이란 ? (0) | 2023.05.21 |
[Spring Boot] DTO, DAO, VO 개념 정리 (0) | 2022.08.12 |
[Spring Boot] 패키지 구조 및 정리 (0) | 2022.08.12 |