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 | 31 |
Tags
- @IdClass
- ERD 작성
- 복합키
- REST란
- 인텔리제이
- JoinColumn
- 1차캐시
- jpa회원가입
- Error creating bean with name
- jpa에러
- json gson 차이
- spring서버
- jwt메서드
- Q 클래스
- 빈생성안됨
- Filter
- Unsatisfied dependency
- REST API 규칙
- uncheck Exception
- 스프링 부트 기능
- github
- JPA주의사항
- 스프링 부트 공식 문서
- git
- queryDSL
- 최종 프로젝트
- Spring Spring boot 차이
- json
- JPA
- 스프링부트오류
Archives
- Today
- Total
Everyday Dev System
@RestController 와 @Controller의 차이 본문
1. @RestController 란? -> Controller + ResponseBody
클래스에 @RestController를 달아주면, 메서드별로 @ResponseBody를 각각 기재할 필요가 없습니다.
** html을 반환 할 경우에 @ResponseBody 미기재
데이터를 반환할 때는 @ResponseBody 반드시 기재
package com.sparta.springmvc.response;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/response/rest")
public class ResponseRestController {
@GetMapping("/json/string")
public String helloStringJson() {
return "{\"name\":\"Robbie\",\"age\":95}";
}
@GetMapping("/json/class")
public Star helloClassJson() {
return new Star("Robbie", 95);
}
}
2. @Controller 적용 시점
@Controller 어노테이션이 붙어있는 클래스의 메서드들은 html 형식 혹은 데이터를 반환합니다.
html 형식을 반환하는 메서드에는 @ResponseBody를 기재하지 않고,
데이터를 반환하는 메서드에는 @ResponseBody를 반드시 기재하여야 합니다.
3. @RestController 적용 시점
@RestController는 클래스 내에 html을 반환하는 메서드는 안되며, 데이터를 반환하는 메서드만 포함할 수 있습니다.
클래스 내에 데이터를 반환하는 메서드만 있는 경우 @RestController를 클래스에 기재하여 메서드에 @ResponseBody를 기재하지 않아도 됩니다.
그러나 클래스 내에 메서드 중 하나라도 html 형태를 반환하고자 한다면, @RestController -> @Controller로 변경해야 합니다. 또한 데이터를 반환하는 메서드에는 모두 @ResponseBody 어노테이션을 기재해주어야 합니다.
주로 @Controller는 프론트엔드 개발자 분이 작성을 하고,
@RestController는 백엔드 개발자가 데이터를 받아서 가공하고 반환할 때 많이 씁니다.
'내배캠 주요 학습 > Spring 입문' 카테고리의 다른 글
Memo Spring project : CRUD (1) | 2023.06.13 |
---|---|
스프링에서 클라이언트가 서버에 값을 전달하는 방식 (1) | 2023.06.13 |
스프링 자바에서 json 반환 및 변환하는 방법 (1) | 2023.06.13 |
Spring Boot Controller REST API 기초 실습 (0) | 2023.06.13 |
1-9 : Spring MVC란 무엇인가? (0) | 2023.06.13 |