Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- db
- 조건문
- API
- MVC
- rpa
- Scanner
- Array
- Database
- Board
- 배열
- spring
- Oracle
- string
- mysql
- git
- Eclipse
- html
- React
- JDBC
- 문자열
- 이클립스
- jquery
- Uipath
- Java
- SpringBoot
- Thymeleaf
- Controller
- jsp
- 상속
- View
Archives
- Today
- Total
유정잉
⭐️ Controller와 RestController의 차이점 본문
@Controller와 @RestController는 둘 다 스프링 MVC 애플리케이션에서 사용되는 어노테이션으로, HTTP 요청을 처리하는 컨트롤러를 정의할 때 사용됩니다. 그러나 두 어노테이션은 약간의 차이가 있습니다.
[ @Controller ]
- @Controller 어노테이션이 붙은 클래스는 전통적인 스프링 MVC의 컨트롤러로 간주됩니다.
- 주로 HTML 뷰를 반환하는 데 사용됩니다.
- 메서드가 String, ModelAndView, View 등과 같은 HTML 뷰를 반환하도록 정의될 수 있습니다.
- 기본적으로 데이터를 JSON이나 XML 형식으로 반환하지 않습니다.
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class MyController {
@GetMapping("/hello")
public String hello() {
return "hello"; // "hello"라는 뷰 이름을 반환
}
}
위 코드에서 /hello 엔드포인트에 대한 요청을 처리하고, "hello"라는 뷰 이름을 반환하여 해당 뷰를 표시합니다.
[ @RestController ]
- @RestController 어노테이션이 붙은 클래스는 RESTful 웹 서비스의 컨트롤러로 간주됩니다.
- 주로 JSON 또는 XML 형식의 데이터를 반환하는 데 사용됩니다.
- 메서드가 자바 객체를 반환하면 해당 객체는 HTTP 응답 본문에 직렬화되어 전송됩니다.
- 기본적으로 데이터를 JSON 또는 XML 형식으로 반환합니다.
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MyRestController {
@GetMapping("/api/hello")
public String hello() {
return "Hello, World!"; // 문자열 데이터를 JSON 형식으로 반환
}
}
위 코드에서 /api/hello 엔드포인트에 대한 요청을 처리하고, "Hello, World!"라는 문자열 데이터를 JSON 형식으로 반환합니다.
따라서, @Controller는 전통적인 스프링 MVC 컨트롤러로 HTML 뷰를 반환하는 데 사용되고,
@RestController는 RESTful 웹 서비스의 컨트롤러로 JSON 또는 XML 형식의 데이터를 반환하는 데 사용됩니다.
728x90
'개발자 공부 > 🎀 스프링 공부' 카테고리의 다른 글
🎀 스프링 레거시 흐름과 코드 예시 (0) | 2024.06.15 |
---|---|
⭐️ @PostConstruct와 @PreDestroy 빈의 초기화 + 빈의 소멸 (0) | 2024.05.29 |
⭐️ @Componentscan과 @Configuration + @Bean의 차이점 (0) | 2024.05.29 |
⭐️ Model Attribute와 Request Parameter의 차이점 + RequestBody (0) | 2024.05.29 |
🎀 스프링 기본 5 - 의존관계 자동 주입 (0) | 2024.05.28 |