2023.11.02.<Spring>Controller, ResquestMapping, ResponseBody, RestController

2023. 11. 2. 22:42콛/Til

1. Controller

○ Spring MVC는 효율적으로 API를 처리하기 위해 Front Controller 패턴 사용 

○ Controller 사용 시 API마다 파일을 만들지 않아도 괜찮다.

 

@Controller의 사용법

 - 아래 코드의 @GetMapping부분을 HTTP Method에 알맞에 사용한다.

@GetMapping("/api/get")
@ResponseBody
public String get() {
    return "GET Method 요청";
}

//@GetMapping, @PostMapping, @PutMapping, @DeleteMapping..

 

○ @ResquestMapping

 - 중복되는 url이 있을 경우 Class 생성전에 @ResquestMapping을 사용해 코드의 가독성을 높일 수 있다. 아래코드 참고

@Controller
@RequestMapping("/api") // @RequestMapping 사용
public class HelloController {
    @GetMapping("/hello")
    @ResponseBody
    public String hello() {
        return "Hello World!";
    }

 

○ @ResponseBody는 무엇일까?

 - 템플릿 엔진이 적용된 SpringBoot에서는 Controller에서 문자열을 반환시 templates 폴더에서

   해당 문자열의 .html 파일을 찾아서 반환해준다.

 - 따라서 html파일이 아닌 JSON데이터를 브라우저에 반환하고 싶다면 해당 메서드에 @ResponsBody 에너테이션 추가

 

@RestController

 - @RestController == @Controller + @ResponseBody

 - 사용시 해당 클래스의 모든 메서드에 @ResponseBody 애너테이션 추가