본문 바로가기

Spring

Spring

@RestController
@RequestMapping("/api") //http://localhost:8888/api
public class GetController {    //rest 자원요청하면서 api역할
    //url호출할 수 있는 기능

    //http://localhost:8888/api/getmethod

Spring에서 컨트롤러를 지정해주기 위한 어노테이션은 @Controller 와 @RestController가 있다.

전통 @Controller 와 @RestController의 차이점

 HTTP Response Boby가 생성되는 방식

 

@Controller: 주로 View를 반환하기 위해 사용한다,

-Client는 URL 형식으로 웹 서비스에 요청을 보낸다.

- Controller는 요청을 처리한 후에 ViewName을 반환한다.

-Controller가 반환한 view의 이름을 가지고 View 랜더링하기 위해서 ViewResolver가 사용되며,

ViewResolver 설정에 맞게 View를 찾아 렌더링 한다.

 

데이터 반환해야하는 경우?

Controller에서 데이터를 반환하기 위해 @ResponseBody 어노테이션을 활용한다.

이를 통해 Json형태로 데이터를 반환한다.                   //Json??

-Client는 URI 형식으로 웹 서비스에 요청을 보낸다.     //url??

-Controller는 요청을 처리한후에 객체를 반환한다.

-반환되는 객체는 Json으로 Serialize되어 사용자에게 반환된다.

 

(??)

컨트롤러를 통해 객체를 반환할 때

일반적으로 ResponseEntity로 감싸서 반환한다.

객체를 반환하기 위해서 viewResolver대신에 HttpMessageConverter가 동작한다.

 

@RestController

-@Controller에 ResponseBody가 추가된것

-RestController의 주용도는  Json 형태로 객체 데이터를 반환하는것

최근 데이터를 응답으로 제공하는 REST API를 개발할 때 주로 사용, 객체를 ResponseEntity로 감싸서 반환한다.

 

@Controller + @ResponseBody = @RestController

'Spring' 카테고리의 다른 글

post, get 방식  (0) 2023.02.23
MVC 패턴  (0) 2023.02.23
Mapping  (0) 2023.01.09
day4  (0) 2022.12.14
Spring  (0) 2022.12.09