-
Spring Boot: @Controller , @RestControllerSpring Boot 🍃 2023. 11. 29. 06:21
@Controller
일반적인 Spring MVC 컨트롤러로, 주로 웹 페이지를 제공하는 데 사용된다.
뷰 이름을 반환하며, ViewResolver에 의해 처리되어 실제 뷰로 변환되어진다.
🐵. @Controller 에서 HTML 페이지 , json 객체 내려주는 방법
@Controller
어노테이션이 붙은 컨트롤러 페이지에서는 html 뷰페이지만 내려보내고
json 응답은
@RestController
에서 내리는게 맞지만
html과 json을 요구하는 특수한 상황(?)이 오게 된다면 사용할 수 있는 방법이다.
@Controller public class PageController { // main.html 반환 @RequestMapping("/main") public String main() { return "main.html"; } // json 객체 반환 @ResponseBody @GetMapping("/user") public User user() { var user = new User(); // 타입 추론! 클래스 이름이 아주 긴 경우 유용하게 쓰인다. user.setName("zh"); user.setAge(130); return user; } }
@RestController
RESTful 웹 서비스 컨트롤러로, 주로 API를 제공하는 데 사용된다.
반환 값이 자동으로 JSON, XML 등의 형식으로 직렬화되어 응답 본문에 포함된다!
@RestController 예제
1. String 반환
@RestController @RequestMapping("/api") public class ApiController { @GetMapping("/hi") // localhost:8888/api/hi public String hi() { return "하이 😆"; } }
2. 객체 반환
반환할 객체 정의
class Test { private String name; private String haha; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getHaha() { return haha; } public void setHaha(String haha) { this.haha = haha; } }
controller 정의
@RestController @RequestMapping("/api") public class ApiController { @GetMapping("/test") // localhost:8888/api/test public Test test() { Test test = new Test(); test.setName("zhyun"); test.setHaha("🙈"); return test; } }
'Spring Boot 🍃' 카테고리의 다른 글
Spring Boot: Response 응답에 대해 알아두면 좋을 2가지 (0) 2023.11.29 Spring Boot: POST , PUT, PATCH Method 요청 받기 (0) 2023.11.29 Spring Boot: GET , DELETE Method 요청 받기 (0) 2023.11.29 Spring Boot: port 번호 변경하기 (0) 2023.11.29 Spring Boot 3.0.6 시작하기 (0) 2023.11.28