컨트롤러에 사용하는 @Controller와 @RestController의 차이에 대해 알아보겠다.
1. Controller - View
Spring MVC의 컨트롤러로, JSP같은 view를 전달하는 용도이다.
2. Controller - Data
@ResponseBody 어노테이션을 사용하면 클라이언트에게 데이터 자체를 전달할 수 있다.
뷰를 별도로 만들지 않고 컨트롤러 메소드가 리턴한 데이터 자체를 클라이언트로 전달.
즉, 문자열이나 VO, 컬렉션 형태의 자바 객체 자체를 전달한다.
자바 객체가 전달되는 경우는 자동으로 JSON으로 변환하여 처리한다.
예제
@Controller @RequestMapping("/event") public class EventController { @Autowired EventService eventService; @GetMapping("/publisher") @ResponseBody public String Eventpublisher(String name) { eventService.threeSecont(); return "/Event; } }
@Controller + @ResponseBody
예제
@RestController @RequestMapping("/event") public class EventController { @Autowired EventService eventService; @GetMapping("/publisher") public String Eventpublisher(String name) { eventService.threeSecont(); return "Event Strat"; } }