Post

[Spring] RestController

@RestController

  • @Controller + 해당 컨트롤러에 전부 @ResposeBody 가 적용

    @ResponseBody

  • String으로 응답시 View Template 사용 X
  • return 값을 Http 바디에 담아서 그대로 보냄

Spring에서의 Controller사용법

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

  • @Controller(Spring MVC Controller)
    • 전통적인 Spring MVC의 컨트롤러인 @Controller는 주로 View를 반환하기 위해 사용합니다. 하지만 @ResponseBody 어노테이션과 같이 사용하면 RestController와 똑같은 기능을 수행할 수 있습니다.
    • 예시코드
      1
      2
      3
      4
      5
      6
      7
      
      @Controller
      public class Controllerprac {
          @GetMapping("/home") //home으로 Get요청이들어오면
          public String homepage(){
              return "home.html"; //home.html생성
          }
      }
      
  • @RestController(Spring Restful Controller)Permalink
    • RestController는 Controller에서 @ResponseBody 어노테이션이 붙은 효과를 지니게 됩니다.
    • 즉 주용도는 JSON/XML형태로 객체 데이터 반환을 목적으로 합니다.
    • 예시코드
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      
      @RestController // JSON으로 데이터를 주고받음을 선언합니다.
      public class ProductRestController {
      
          private final ProductService productService;
          private final ProductRepository productRepository;
      
          // 등록된 전체 상품 목록 조회
          @GetMapping("/api/products")
          public List<Product> getProducts() {
              return productRepository.findAll();
          }
      }
      
This post is licensed under CC BY 4.0 by the author.