스프링 컨트롤러 어노테이션에는
@Controller, @RestController 가 있음
그 큰 차이점에는 HTTP Response Body가 생성되는 방식이다.
@Controller
Model객체를 만들어 데이터를 담고 View를 반환하기 위해 사용함
@ResponsBody 어노테이션을 함께 사용하면 View를 리턴하지 않고 Controller에서 직접 데이터 리턴이 가능 하다.
@RestController
=> @Controller + @ResponseBody 의 형태를 가지고 있음
반환하는 객체 데이터 타입은 JSON/XML 타입의 HTTP응답을 리턴한다.
그렇다면 @RestController를 사용하면
@Controller + @ResponseBody를 사용할 필요가 없음.
스프링부트는 @RestController를 사용한다면 기본적으로 JSON으로 매핑해서 내려주지만
스프링의 경우에는 리턴하려는 타입을 자동으로 컨버팅까지 해주지는 않음 !
라이브러리를 사용해서 해당 라이브러리에게 컨버팅을 위임하는 방식으로 진행해야 한다.
결론 : 스프링의 경우에는 jackson 라이브러리를 의존성으로 포함해준다면 자동으로 컨버터 역할을 하게 됨
참고: jacson 의 의존성은 크게 3가지를 가지고 있다
jackson-core, jackson-annotation, jackson-databind.
그런데 jackson-databind가 나머지 두 의존성을 포함하고 있으니 jackson-databind만 의존성 추가해주면 됨
'백엔드개발자 > SPRING, JPA 등...' 카테고리의 다른 글
RedirectAttributes (0) | 2022.10.12 |
---|---|
의존성 주입 -조회 빈이 2개 이상 (0) | 2022.06.22 |
HttpServletRequest (0) | 2022.06.21 |
@RequestMapping 이 기억이 안나 (@PostMapping, @GetMapping) (0) | 2022.05.13 |
회원등록 API (0) | 2022.04.19 |